Commit graph

1265 commits

Author SHA1 Message Date
David Goulet
bbf160d311 cc: Use trunnel extension for ntorv3 circ parameters
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-02-22 19:28:34 +00:00
David Goulet
dd938e58d3 protover: Add function to get the value of a single type
We can now query the protover subsystem to get the current value we
support for a specific protover type.

This will be useful for prop324 onion service part which puts in the
FlowCtrl value in the service descriptor.

No behavior change.

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-02-22 19:28:34 +00:00
Mike Perry
6b2086773c Add test for congestion control negotiation logic. 2022-02-22 19:28:34 +00:00
Mike Perry
b2789ae72a Add hidden torrc option to always try CC negotiation.
This is for public network testing and for sbws. Should not otherwise be used,
hence it is an undocumented __option.

The option deliberately does not allow force-disabling congestion control, as
this is bad for queueing and fairness.
2022-02-22 19:28:34 +00:00
Mike Perry
a0eeadfba2 Handle other places that use onion handshake type values
We want ntor and ntorv3 to use the same queues and stats.
2022-02-22 19:28:34 +00:00
Mike Perry
a07e008616 Congestion control usage of negotiated params 2022-02-22 19:28:34 +00:00
Mike Perry
1b1c261080 Protover flag handling for congestion control negotiation 2022-02-22 19:28:34 +00:00
Mike Perry
76bdadce12 Hook up client usage of congestion control negotiation 2022-02-22 19:28:34 +00:00
Mike Perry
b6d5fbba7d Implement congestion control parameter negotiation 2022-02-22 19:28:34 +00:00
Nick Mathewson
93318ba5e2 Convert TODO into TODO-324 for better visibility. 2022-02-22 19:28:33 +00:00
Nick Mathewson
662b9c1c0d Add stub argument for constructing congestion_control_t 2022-02-22 19:28:33 +00:00
Nick Mathewson
a511718a30 Negotiated circuit parameters must pass from worker. 2022-02-22 19:28:33 +00:00
Nick Mathewson
baaabb503c Use protover to signal support for ntor3 + congestion control. 2022-02-22 19:28:33 +00:00
Nick Mathewson
bd2e9a4409 Implement core of ntor3 negotiation.
There are a lot of TODOs about what to send, whom to send it to, and
etc.
2022-02-22 19:28:33 +00:00
Nick Mathewson
244444e8b1 Add an exported struct to onion handshakes for circuits params
THis will eventually hold the congestion control parameters that we
negotiated, plus whatever else is relevant.
2022-02-22 19:28:33 +00:00
Nick Mathewson
358ce9a19d Add a size argument for the buffer on onion handshake functions 2022-02-22 19:28:33 +00:00
David Goulet
763d72238d kist: Don't try to flush empty outbuf
It is possible that a scheduled channel ended up with 0 bytes in its
outbuf after the scheduling loop and having an outbuf table entry
indicating that we need to flush bytes on the wire after the loop.

This lead to attempt to write 0 bytes up to the TLS layer that would
prevent such action.

All in all, this fixes wasted CPU cycles on attempting to flush nothing.

Fixes #40548

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-02-08 09:31:17 -05:00
Nick Mathewson
7a3d60d471 Use an alternative solution to the warning in trace_probes_cc.c 2022-01-20 14:46:38 -05:00
Nick Mathewson
935d7b5803 Resolve typedef conflict from congestion_control_t
Resumes being able to build on old / esoteric gcc versions.

Fixes bug 40550; bugfix on 0.4.7.1-alpha.
2022-01-20 14:22:00 -05:00
David Goulet
a4510603f7 Merge branch 'maint-0.4.6' 2022-01-18 13:12:35 -05:00
David Goulet
7d9d769123 Merge branch 'maint-0.4.5' into maint-0.4.6 2022-01-18 13:12:35 -05:00
David Goulet
aac5731f86 Merge branch 'maint-0.3.5' into maint-0.4.5 2022-01-18 13:12:13 -05:00
David Goulet
72041c6306 relay: Don't advertise HSv2 protocol version
We removed HSIntro=3 and HSDir=1 that are v2 specific. Since 0.3.5.17,
we do not support introducing or being a directory for onion service v2.

Closes #40509

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-01-18 12:39:06 -05:00
Alexander Færøy
48d778bc32 Merge remote-tracking branch 'tor-gitlab/mr/491' into main 2021-12-15 12:41:00 +00:00
Nick Mathewson
dd085d42f9 Do not count controller-selected paths towards path bias.
As a side effect, this fixes a "Bug" warning.

Closes #40515.  Bugfix on 0.2.4.10-alpha.
2021-11-15 08:55:47 -05:00
David Goulet
77b265f96e Merge branch 'maint-0.4.5' into maint-0.4.6 2021-11-05 10:44:10 -04:00
David Goulet
1c77deca4f Merge branch 'maint-0.4.6' 2021-11-05 10:44:10 -04:00
David Goulet
a7fe37f1fa protover: Fix merge forward from 035
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-05 10:42:54 -04:00
David Goulet
47adba879c Merge branch 'maint-0.3.5' into maint-0.4.5 2021-11-05 10:35:08 -04:00
Nick Mathewson
439e17180c Light edit to protover warnings. 2021-11-05 10:30:57 -04:00
David Goulet
f93cd5deb8 protover: Add a note on why LinkAuth is not recommended or required
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-05 10:16:08 -04:00
David Goulet
3d1a49908c protover: Move all hardcoded lists in one place
This also moves the warnings and add some theatrical effect around the
code so anyone modifying those list should notice the warnings signs and
read the comment accordingly.

Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-05 10:13:47 -04:00
Nick Mathewson
7c085490f5 Add scary warnings about changing the protover list.
Doing this in the wrong way has potential to cause serious havoc on
the network, so let's make it harder for future programmers to mess
it up.
2021-11-05 09:20:05 -04:00
Alexander Færøy
ee38ec02f3 Use TOR_PRIuSZ instead of %ld for CC logging.
This patch fixes the current build of main on Windows.
2021-10-29 19:08:20 +00:00
Alexander Færøy
ae05f06597 Merge branch 'tor-gitlab/mr/452_squashed' into main 2021-10-21 12:57:37 +00:00
Nick Mathewson
fc542167cb Implement a MiddleOnly flag for vote generation.
This proposal implements part of Prop335; it's based on a patch
from Neel Chauhan.

When configured to do so, authorities will assign a MiddleOnly flag
to certain relays.  Any relay which an authority gives this flag
will not get Exit, V2Dir, Guard, or HSDir, and might get BadExit if
the authority votes for that one.
2021-10-21 12:57:20 +00:00
Nick Mathewson
bcc953307b Move "Didn't recognize cell, but circ stops here" into heartbeat.
When we looked, this was the third most frequent message at
PROTOCOL_WARN, and doesn't actually tell us what to do about it.
Now:
 * we just log it at info
 * we log it only once per circuit
 * we report, in the heartbeat, how many times it happens, how many
   cells it happens with per circuit, and how long these circuits
   have been alive (on average).

Fixes the final part of #40400.
2021-10-20 18:38:39 +00:00
David Goulet
d455f9e18a hs: v2 address are now considered a bad hostname
This means that at this commit, tor will stop logging that v2 is
deprecated and treat a v2 address as a bad hostname that we can't use.

Part of #40476

Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-19 10:59:19 -04:00
David Goulet
af48f5736a hs: Fix merge conflicts after merging forward 40476
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-19 10:57:10 -04:00
David Goulet
2a705e81a3 Merge branch 'maint-0.4.6' 2021-10-19 10:35:40 -04:00
David Goulet
f748a497c7 Merge branch 'ticket40476_045_01' into ticket40476_046_01 2021-10-19 09:48:13 -04:00
David Goulet
ed4d6a0030 hs-v2: Disable SOCKS connection for v2 addresses
This effectively turns off the ability of tor to use HSv2 as a client by
invalidating the v2 onion hostname passed through a SOCKS request.

Part of #40476

Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-19 09:08:05 -04:00
David Goulet
4dfc5de509 Merge branch 'tor-gitlab/mr/455' 2021-10-14 08:40:38 -04:00
Nick Mathewson
3da455de00 Downgrade a PROTOCOL_WARN log message.
This one happens every time we get a failure from
circuit_receive_relay_cell -- but for all the relevant failing cases
in that function, we already log in that function.

This resolves one case of #40400.  Two cases remain.
2021-10-13 16:51:46 -04:00
Alexander Færøy
028b52f1ef Remove unused debugging code used for tor#17659
See: tpo/core/tor#17659
2021-10-11 21:29:49 +02:00
David Goulet
ba5a71b913 Merge branch 'tor-gitlab/mr/447' 2021-10-08 10:43:53 -04:00
David Goulet
ae9042abbf rust: Remove Rust support from tree
Closes #40469

Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-06 15:12:04 -04:00
David Goulet
c3e50f0fde Merge branch 'maint-0.4.6' 2021-10-06 13:25:08 -04:00
David Goulet
602dcd8e37 hs-v2: Only log once the connection warning to v2
Closes #40474

Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-06 13:22:02 -04:00
David Goulet
f0d1240a07 hs-v2: Only log once the connection warning to v2
Closes #40474

Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-06 13:20:22 -04:00