Mike Perry
8f9cf1ec43
Export a global notion of monotime clock stall/jump.
...
Monotime clock functionality is a global property, and flow control
also needs to know if it can trust the clock.
2021-09-28 21:39:36 +00:00
Nick Mathewson
088c0367a2
Initial backend for an ntor-v3 implementation.
...
This code is based directly on the specification, without looking at
the reference implementation or the implementation in Arti.
Nonetheless, it is now passing with the test vectors generated by
the reference implementation.
2021-08-26 15:09:56 -04:00
Mike Perry
5c3021be85
Make inbuf and outbuf len check params const
2021-07-30 12:57:31 -04:00
Mike Perry
a0368b3759
MAKEFILE: include new CC algs in makefile
2021-07-30 12:57:31 -04:00
Mike Perry
ed1e91ffc2
TOR_NOLA: Implement a pure BDP tracking CC alg
...
How come no one ever named a congestion control algorithm after New Orleans?
2021-07-30 12:57:31 -04:00
Mike Perry
663cd052b5
TOR_VEGAS: Implement Prop#324 TOR_VEGAS.
2021-07-30 12:57:30 -04:00
Mike Perry
33cd92922a
TOR_WESTWOOD: Implement Prop#324 TOR_WESTWOOD
2021-07-30 12:57:30 -04:00
Mike Perry
66f975e4e6
Prop#324: Free congestion control object on circ and cpath
2021-07-30 12:57:30 -04:00
Mike Perry
4d8c6d5701
Prop#324: Hook up CC window checks for relay cell packaging
2021-07-30 12:57:30 -04:00
Mike Perry
31fc7591a1
Prop#324: Hook up CC algs to main sendme callpoints
2021-07-30 12:57:30 -04:00
Mike Perry
802d7e22c5
Prop#324: Add congestion control state to structs
2021-07-30 12:57:30 -04:00
Mike Perry
f1d0c2d826
Prop#324: Common RTT, BDP, and blocked channel signal support
2021-07-30 12:57:30 -04:00
George Kadianakis
4f68fe3e6c
Merge branch 'vanguards-lite-dev-rebased'
2021-07-28 12:00:37 +03:00
George Kadianakis
72aa23a9fd
circpad: Be smarter on when to send back STOP cells.
2021-07-22 15:03:56 +03:00
George Kadianakis
30a97d9bb3
Increase frequency of vg-lite callback to 15 minutes
2021-07-20 13:03:32 +03:00
George Kadianakis
7f701794e7
Add a switch to toggle the feature on/off
2021-07-12 12:22:58 +03:00
George Kadianakis
7ec9a68477
Service intro circuits are now 4-hop to avoid linkability by intro
...
Now the circuits look like this:
client rend: C -> G -> L2 -> Rend
client intro: C -> G -> L2 -> M -> Intro
client hsdir: C -> G -> L2 -> M -> HSDir
service rend: C -> G -> L2 -> M -> Rend
service intro: C -> G -> L2 -> M -> Intro
service hsdir: C -> G -> L2 -> M -> HSDir
2021-07-12 11:24:58 +03:00
George Kadianakis
e79d73de9b
Merge remote-tracking branch 'tor-gitlab/mr/406'
2021-07-07 13:02:11 +03:00
George Kadianakis
52c5b8aa12
Simplify cannibalization logic now that all HS is vanguards
...
Co-authored-by: Mike Perry <mikeperry-git@torproject.org>
2021-07-01 18:15:55 +03:00
George Kadianakis
9afd9d0940
Special vanguard L3 increased path length does not apply for vanguards-lite
...
Co-authored-by: Mike Perry <mikeperry-git@torproject.org>
2021-07-01 18:15:55 +03:00
George Kadianakis
0240c00929
Preemptive circuits for HSes should now be vanguard circuits
...
Co-authored-by: Mike Perry <mikeperry-git@torproject.org>
2021-07-01 18:15:55 +03:00
George Kadianakis
e23947716e
Use L2 vanguards during path selection
...
Co-authored-by: Mike Perry <mikeperry-git@torproject.org>
2021-07-01 18:15:55 +03:00
George Kadianakis
314a6b42c5
Introduce vanguards-lite subsystem and some of its entry points
...
Co-authored-by: Mike Perry <mikeperry-git@torproject.org>
2021-07-01 18:15:55 +03:00
David Goulet
301ffb71a6
hs: Send back 0xF6 for a v2 onion address
...
Fixes #40421
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-06-29 09:56:44 -04:00
Nick Mathewson
0667eaa9bf
Merge branch 'maint-0.4.6'
2021-06-10 09:55:55 -04:00
Nick Mathewson
7be37a26ac
Merge branch 'maint-0.4.5' into maint-0.4.6
2021-06-10 09:55:55 -04:00
Nick Mathewson
ae2254e490
Merge branch 'maint-0.4.4' into maint-0.4.5
2021-06-10 09:55:55 -04:00
Nick Mathewson
014345ed6a
Resolve remaining merge conflicts in relay.c
...
(My bad!)
2021-06-10 09:55:35 -04:00
Nick Mathewson
8734eea31b
Merge branch 'maint-0.4.6'
2021-06-10 08:53:07 -04:00
Nick Mathewson
3260d323a6
Merge branch 'maint-0.4.5' into maint-0.4.6
2021-06-10 08:53:07 -04:00
Nick Mathewson
ec696a95e5
Merge branch 'maint-0.4.4' into maint-0.4.5
2021-06-10 08:53:07 -04:00
Nick Mathewson
0f2d45328d
Merge branch 'maint-0.3.5' into maint-0.4.4
...
Conflicts resolved:
src/core/or/relay.c
2021-06-10 08:52:39 -04:00
David Goulet
adb248b6d6
TROVE-2021-003: Check layer_hint before half-closed end and resolve cells
...
This issue was reported by Jann Horn part of Google's Project Zero.
Jann's one-sentence summary: entry/middle relays can spoof RELAY_END cells on
half-closed streams, which can lead to stream confusion between OP and
exit.
Fixes #40389
2021-06-10 08:50:05 -04:00
Nick Mathewson
d9edf143ab
Merge branch 'maint-0.4.6'
2021-06-10 08:42:15 -04:00
Nick Mathewson
69bd4a8a2d
Merge branch 'maint-0.4.5' into maint-0.4.6
2021-06-10 08:42:15 -04:00
Nick Mathewson
1da8621c0a
Merge branch 'maint-0.4.4' into maint-0.4.5
2021-06-10 08:42:15 -04:00
Nick Mathewson
31eaa81f59
Merge branch 'maint-0.3.5' into maint-0.4.4
2021-06-10 08:42:15 -04:00
Roger Dingledine
896ab165d9
clarify three comments
...
based on code-spelunking with nickm
2021-05-27 14:22:22 -04:00
Nick Mathewson
4c06c619fa
Use a more secure hash function for the circuitmux hashtable.
...
Fixes bug 40931; bugfix on 0.2.4.4-alpha. Also tracked as
TROVE-2021-005.
This issue was reported by Jann Horn from Google's Project Zero.
2021-05-18 08:40:09 -04:00
Nick Mathewson
fbd47a5078
Merge branch 'maint-0.4.5' into maint-0.4.6
2021-05-17 09:04:22 -04:00
Nick Mathewson
af560f21ec
Merge branch 'maint-0.4.6'
2021-05-17 09:04:22 -04:00
David Goulet
5f009a59da
conn: MetricsPort listener is a listener port
...
The connection type for the listener part was missing from the "is
connection a listener" function.
This lead to our periodic event that retries our listeners to keep
trying to bind() again on an already opened MetricsPort.
Closes #40370
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-05-12 15:13:50 -04:00
David Goulet
22861c2f40
relay: Add TCP port exhaustion metrics
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-05-12 11:58:25 -04:00
David Goulet
9c2fa34982
relay: Add the OOM invocation metrics
...
With this commit, a relay now emits metrics event on the MetricsPort
related to the OOM invocation for:
- DNS cache
- GeoIP database
- Cell queues
- HSDir caches
Everytime the OOM is invoked, the number of bytes is added to the
metrics counter for that specific type of invocation.
Related to #40367
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-05-12 11:58:25 -04:00
Nick Mathewson
5acf18bfaa
Merge branch 'maint-0.4.5' into maint-0.4.6
2021-05-07 10:41:34 -04:00
Nick Mathewson
7c86f34340
Merge branch 'maint-0.4.4' into maint-0.4.5
2021-05-07 10:41:34 -04:00
Nick Mathewson
48dd87933d
Merge branch 'maint-0.3.5' into maint-0.4.4
2021-05-07 10:41:33 -04:00
Nick Mathewson
e2c1ac214c
Reindent a few lines to fix a GCC warning.
...
As of GCC 11.1.1, the compiler warns us about code like this:
if (a)
b;
c;
and that's a good thing: we wouldn't want to "goto fail". But we
had an instance if this in circuituse.c, which was making our
compilation sad.
Fixes bug 40380; bugfix on 0.3.0.1-alpha.
2021-05-07 10:39:20 -04:00
George Kadianakis
80c404c4b7
Log warning when connecting to soon-to-be-deprecated v2 onions.
2021-05-07 08:44:36 -04:00
George Kadianakis
5e836eb80c
Add warning when trying to connect to deprecated v2 onions.
2021-05-07 08:41:46 -04:00