Commit graph

27679 commits

Author SHA1 Message Date
David Goulet
cf93d35209 crypto: Clarifying comment for the random hostname calculation
Closes #40520

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-15 14:00:00 -04:00
David Goulet
cc674939d2 test: Unit tests for overload onionskin ntor
Part of #40560

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-15 13:28:17 -04:00
David Goulet
9a47372096 rephist: Introduce a fraction and period for overload onionskin
This code was heavily reused from the previous DNS timeout work done in
ticket #40491 that was removed afterall from our code.

Closes #40560

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-15 13:28:17 -04:00
David Goulet
1760a12f83 dns: Wake up a dormant tor with a DNSPort request
Fixes #40577

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-15 12:12:57 -04:00
David Goulet
1934e24469 Merge branch 'tor-gitlab/mr/546' 2022-03-14 15:17:05 -04:00
Mike Perry
f6f7c4e846 Emit control port notification for XON/XOFF 2022-03-14 15:16:26 -04:00
Mike Perry
cf8d9fb1a0 Control port STREAM XON/XOFF status event notification 2022-03-14 15:16:26 -04:00
David Goulet
df6625300d Merge branch 'tor-gitlab/mr/543' 2022-03-11 09:29:41 -05:00
David Goulet
be80383a7c Merge branch 'maint-0.4.5' into maint-0.4.6 2022-03-10 09:18:57 -05:00
David Goulet
c076ac787f Merge branch 'maint-0.4.6' 2022-03-10 09:18:57 -05:00
David Goulet
254b23ab9d hs: Schedule mainloop event on dirinfo change
Due to a possible Guard subsystem recursion, when the HS client gets
notified that the directory information has changed, it must run it in a
seperate mainloop event to avoid such issue.

See the ticket for more information on the recursion. This also fixes a
fatal assert.

Fixes #40579

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-10 08:58:26 -05:00
David Goulet
069b278601 hs: Don't BUG() when setting up RP congestion control
It is possible to not have the descriptor anymore by the time the
rendezvous circuit opens. Don't BUG() on that.

Instead, when sending the INTRODUCE1 cell, make sure the descriptor we
have (or have just fetched) matches what we setup in the rendezvous
circuit.

If not, the circuit is closed and another one is opened for a retry.

Fixes #40576

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-09 12:15:12 -05:00
David Goulet
472c7127c7 Merge branch 'maint-0.4.5' into maint-0.4.6 2022-03-09 08:46:55 -05:00
David Goulet
9efb04bb3e hs: Fix multiple port label on single metric
Prometheus needs unique labels and so this bug was causing an onion
service with multiple ports to have multiple "port=" label for the
metrics requiring a port label.

Fixes #40581

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-08 13:56:54 -05:00
David Goulet
f4aa985cf7 hs: Fix multiple port label on single metric
Prometheus needs unique labels and so this bug was causing an onion
service with multiple ports to have multiple "port=" label for the
metrics requiring a port label.

Fixes #40581

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-08 13:50:34 -05:00
Mike Perry
c7c2287d07 Make a check for origin circuit explicit. 2022-03-03 20:55:46 +00:00
Mike Perry
7cb050bd7d Ensure CIRC_BW event is emitted immediately upon slow start exit.
This ensures sbws gets this information quickly, so it can begin measurement.
2022-03-03 20:55:46 +00:00
Mike Perry
646a1d5f9a Add congestion control fields to CIRC_BW control port event 2022-03-03 20:06:38 +00:00
Tor CI Release
331b2aa348 version: Bump version to 0.4.7.4-alpha-dev 2022-02-25 10:53:16 -05:00
Tor CI Release
9059baff91 version: Bump version to 0.4.7.4-alpha 2022-02-25 09:21:22 -05:00
Tor CI Release
211e093761 fallbackdir: Update list generated on February 25, 2022 2022-02-25 09:12:27 -05:00
Tor CI Release
a424f6c7bf Update geoip files to match ipfire location db, 2022/02/25. 2022-02-25 09:11:55 -05:00
Dimitris Apostolou
2905e7667e
Fix typos 2022-02-25 11:41:34 +02:00
David Goulet
45416356ed Merge branch 'tor-gitlab/mr/488' 2022-02-23 15:21:40 -05:00
David Goulet
d09e58d9bf cc: Fix memleak when building extension response
Fixes #40575

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-02-23 14:40:04 -05:00
David Goulet
69f1a7aa59 Merge branch 'tor-gitlab/mr/536' 2022-02-23 13:19:10 -05:00
Roger Dingledine
72729210bf fix a typo in a comment 2022-02-23 10:03:24 -05:00
Mike Perry
2d0377be75 Reject intro2 cells that request unadvertized congestion control. 2022-02-23 00:42:31 +00:00
Mike Perry
77bf932c83 Properly initialize the cc_enabled field in hs intro data. 2022-02-23 00:23:23 +00:00
Mike Perry
01bda6c23f Add test for sendme_inc validation. 2022-02-22 19:28:36 +00:00
Mike Perry
8f4bd8730c Add test for sendme_cell_is_next with sendme_inc of 31 2022-02-22 19:28:36 +00:00
Mike Perry
5c88bea84c Add test for circuit_sendme_cell_is_next() when sendme_inc is 100.
This ensures compatibility with old tor.
2022-02-22 19:28:36 +00:00
Mike Perry
a956b20c1d Add a delta parameter to Vegas.
This allows us to cap the queue use during steady state. In shadow, this
reduced instances of long circuit queues at relays.
2022-02-22 19:28:35 +00:00
Mike Perry
3a3f111b23 Exit slow start at the gamma threshold
This improves performance and fairness.
2022-02-22 19:28:35 +00:00
Mike Perry
1960bf09f3 Increment by at least 2 sendme_incs in slow start 2022-02-22 19:28:35 +00:00
Mike Perry
d62f9c9d00 Only apply more frequent cwnd updates after slow start. 2022-02-22 19:28:35 +00:00
Mike Perry
43f6f3fd3a Make N_EWMA a percentage of CWND update rate, capped by a max value.
This proved better in Shadow sims than just a multiple of CWND.
2022-02-22 19:28:35 +00:00
Mike Perry
3079e2cacc Relocate two parameters from circuit scope to global scope.
Changes in these will not affect in-progress transfers.
2022-02-22 19:28:35 +00:00
Mike Perry
4f3a0e39cf Guard against 0 time delta in BDP calc.
This can only happen in Shadow, but it will cause issues there.
2022-02-22 19:28:35 +00:00
Mike Perry
8052d0c2c0 Increase RTT ratio used to detect monotime jumps/stalls.
In Shadow, we saw RTT jumps as high as 1000 naturally.

So let's set this to 5000, to give us some breathing room.
2022-02-22 19:28:35 +00:00
Mike Perry
338d00ba92 Fix NULL pointer deref in logs 2022-02-22 19:28:35 +00:00
Mike Perry
86f81abe30 Properly compute the number or recv cells from deliver_window
Without this conversion, there is an implict 1000-recv_cells, which causes
the mod to fail if it is not a factor of 1000.
2022-02-22 19:28:35 +00:00
Mike Perry
b2553bfba2 Use path type hint for Vegas queue parameters.
These parameters will vary depending on path length, especially for onions.
2022-02-22 19:28:35 +00:00
Mike Perry
0a6cde8756 Set new defaults for congestion control parameters.
Defaults determined from Shadow experimentation.

More parameter functionality changes to follow.
2022-02-22 19:28:35 +00:00
David Goulet
d4cf3fadec cc: Change edge_get_ccontrol() to look at both cpath and on_circuit
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-02-22 19:28:35 +00:00
David Goulet
27d948dab8 hs: Fix tests for congestion control 2022-02-22 19:28:35 +00:00
David Goulet
6f45ad3771 hs: Setup congestion control on service rends using intro data
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-02-22 19:28:35 +00:00
David Goulet
729dd14fde hs: Decode and cache the INTRODUCE cell congestion control extension
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-02-22 19:28:35 +00:00
David Goulet
38e9d9b465 hs: Build INTRODUCE extension in the encrypted section
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-02-22 19:28:35 +00:00
David Goulet
c79df44d22 hs: Setup congestion control on client rends
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-02-22 19:28:35 +00:00