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
0cf82cf8cb
Merge branch 'maint-0.4.6'
2022-03-09 08:48:59 -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
Roger Dingledine
1c3cefe2cf
don't list non-stable releases in ReleaseNotes
...
(the idea is that ReleaseNotes is for learning what you get when you
move from one stable to another, whereas ChangeLog is for learning what
changed in each released version of tor.)
2022-03-07 14:35:58 -05:00
Roger Dingledine
0add55c31f
fix typo in changelog
2022-03-07 14:35:48 -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
a6b948d1cc
release: ChangeLog and ReleaseNotes for 0.4.7.4-alpha
2022-02-25 09:20:59 -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
37b0d464b8
and fix those typos in the releasenotes too
2022-02-23 10:22:18 -05:00
Roger Dingledine
53ebe16b12
fix typos, remove wrong stanzas, update 0.4.6.10
...
we were missing the 0.4.6.10 changes in ReleaseNotes, and the
0.4.0.5 releasenotes mistakenly included some 0.4.0.x bugfixes.
2022-02-23 10:07:43 -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
933e4b4788
Add changes file
2022-02-22 19:28:35 +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
David Goulet
0eaf0e8a31
hs: Republish onion descriptor on sendme_inc change
...
Republishing is necessary to ensure that clients connect using the correct
sendme_inc upon any change. Additionally, introduction points must be
re-chosen, so that cached descriptors with old values are not usable.
We do not expect to change sendme_inc, unless cell size or TLS record size
changes, so this should be rare.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-02-22 19:28:34 +00:00
David Goulet
89f5eeefb8
hs: Decode flow-control line
...
This puts the flow control version (unparsed) in the descriptor. The
client doesn't use it yet.
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-02-22 19:28:34 +00:00
David Goulet
95639f35ae
hs: Encode flow control value in the descriptor
...
This simply adds the "flow-control" line, as detailed in prop324, to the
descriptor. No decoding is done at this commit.
Part of #40506
2022-02-22 19:28:34 +00:00
David Goulet
02f4e7b42e
cc: Export sendme_inc validation into public function
...
This is needed for client validation of server descriptor value,
before launching a rend/intro.
2022-02-22 19:28:34 +00:00