Jeff Becker
ce7643a3aa
remove case that spams build on an outbound context
2021-06-09 09:36:08 -04:00
Jeff Becker
9a51e4d9b5
forgot to pump on wakeup
2021-06-09 08:45:52 -04:00
Jeff Becker
486cdc0949
correctly do latency test FEC
...
before this it would cause a posative feedback loop causing paths to fail for "no real reason"
2021-06-09 08:32:51 -04:00
Jeff
57186110f3
Merge pull request #1658 from majestrate/network-stability-fixes-2021-06-02
...
Network stability fixes
2021-06-08 18:16:45 -04:00
Jeff Becker
c97fe4aa96
convert magic number to where it came from
2021-06-08 18:07:54 -04:00
Jeff Becker
a0b8fe144a
convert to lambda
2021-06-08 18:06:19 -04:00
Jeff Becker
3594d3e211
spelling fix
2021-06-08 17:54:40 -04:00
Jeff Becker
f9e0c8f50c
add idempotent wakeup for flushing instead of the dumb queue checking
2021-06-08 17:38:04 -04:00
Jeff Becker
e2bdf8792b
typofix
2021-06-08 17:27:50 -04:00
Jeff Becker
7dc1061461
mark ip active on successful send
2021-06-08 14:52:16 -04:00
Jeff Becker
adc6237d1c
mark exit address outbound when we add it via rpc
2021-06-08 14:36:34 -04:00
Jeff Becker
1da0a007ff
close links and remove commit
2021-06-08 14:36:34 -04:00
Jeff Becker
719dd38cf5
more shit
2021-06-08 14:36:33 -04:00
Jeff Becker
7a5dcc3eab
correctly persist link sessions
2021-06-08 14:36:33 -04:00
Jeff Becker
046e02ebe7
fixes for loopback testnet
2021-06-08 14:36:33 -04:00
Jeff Becker
5a713b0142
tweak timeouts to be a bit more sane
2021-06-08 14:36:33 -04:00
Jeff Becker
ea3276333a
on path timeout look up each router, if the lookup fails then we remove it from nodedb and close any connections to it so that bad first hops are rotated off of.
2021-06-08 14:36:33 -04:00
Jeff Becker
07e29da5c0
when we map an address forever mark it as outbound
2021-06-08 14:36:33 -04:00
Jeff Becker
c2722be81c
this fixes the shit wtf
2021-06-08 14:36:33 -04:00
Jeff Becker
5909ad0386
add MarkAddressOutbound to plainquic
2021-06-08 14:36:33 -04:00
Jeff Becker
cce15b13c8
dont establish paths to inbound sessions to try and address state race condition
2021-06-08 14:36:33 -04:00
Jeff Becker
aefab797d7
unconditional putsenderfor
2021-06-08 14:36:33 -04:00
Jeff Becker
6a3dc67e9b
nuke from orbit style router profiling for path build timeouts.
...
* when a path build times out, shitlist every router in the path except the first hop, this way eventually we get the nodedb pruned to only the routers that are currently actually alive, any ones we nuke that we need later we can always do lookups for.
2021-06-08 14:36:33 -04:00
Jeff Becker
1f9b8e5972
nuke invalid routers when we get a path build fail back to not resuse them in the future
2021-06-08 14:36:32 -04:00
Jeff Becker
aa1c1bad0b
record reason for path fail and the full hops
2021-06-08 14:36:32 -04:00
Jeff Becker
0096bd4e35
account for path latency in introset lookups on outbound contexts
2021-06-08 14:36:32 -04:00
Jeff Becker
e4ed53224c
use weak_ptr on a path to reference its parent pathset instead of a bare pointer so crashes dont happen
2021-06-08 14:36:32 -04:00
Jeff Becker
2a76a3d081
treat ignored paths like established paths when dealing with expiration
2021-06-08 14:36:32 -04:00
Jeff Becker
23aa35b825
log when we ignore a path
2021-06-08 14:36:32 -04:00
Jeff Becker
c6660dd6c1
add path aligntment timeout to send and connect timeouts on outbound context to reduce the chance of timing race conditon
2021-06-08 14:36:32 -04:00
Jeff Becker
a8964a6d8a
add idempotent wake up for sending messages to the network and writing packets on interfaces
2021-06-08 14:36:32 -04:00
Jeff Becker
108b8e089e
HandleTimeout can touch iterators so do all handling of lookup timeouts outside of loop iteration
2021-06-08 14:36:32 -04:00
Jeff Becker
0f1e806155
don't kill outbound context after build or lookup fails
2021-06-08 14:36:32 -04:00
Jeff Becker
1aa2146b4a
for inbound sessions, keep them alive for the default session lifetime, for outbound sessions keep alive for 5 ping intervals
2021-06-08 14:36:31 -04:00
Jeff Becker
60cc47447f
increase default session lifetime to 5 minutes for mobile client related reasons
...
make the default inbound session lifetime be default session lifetime + 2 ping intervals
2021-06-08 14:36:31 -04:00
Jeff Becker
a7b20b79c5
add relay order to error message
2021-06-08 14:36:31 -04:00
Jeff Becker
a86152e03c
decay path build limiter per path builder every tick
2021-06-08 14:36:31 -04:00
Jeff Becker
34e31ba04f
only inform failure or success of introset lookups when all lookups have returned
2021-06-08 14:36:31 -04:00
Jeff Becker
220b8837da
delay setting sentIntro by the advertised latency of the remote intro instead of static value
2021-06-08 14:36:31 -04:00
Jeff Becker
c5a86a49a3
defer ready to send state until after we send a handshake
2021-06-08 14:36:31 -04:00
Jeff Becker
40a189a9a3
log drop events more
2021-06-08 14:36:31 -04:00
Jeff Becker
00257567c2
dont call null handler
...
if we have no path to the remote router that's fine still use it just in case we have no other convotags
2021-06-08 14:36:31 -04:00
Jeff Becker
85cd1b6863
use inbound sessions we don't have paths to in GetBestConvoTagFor just so we can give the caller SOMETHING.
2021-06-08 14:36:31 -04:00
Jeff Becker
b03d17bc8e
dont change send timeout for exits from tun handler as that screws with consistency in testing.
...
improve log messages, provide more info
2021-06-08 14:36:30 -04:00
Jeff Becker
a94c100e7b
improve log messages about expiring convotags
2021-06-08 14:36:30 -04:00
Jeff Becker
42d75b934d
remove service nodes we can't look up from the nodedb as client
2021-06-08 14:36:30 -04:00
Jeff Becker
8dd1358cc6
* tweak introset handover timeouts
...
* introset path haodver tweaks
* improve warn/error messages to convey more information
* dont block on queue insertion
* reset convotag on decrypt/verify fail
* add multiple ready hooks on outbound context
* lookup introsets from close routers on dht
* continue to tick dead sessions so they expire their paths
* introset spacing
* reduce lns lookup diversity requirement for speed
* add a function to send reset convotag message
* only have 1 outbound context at a time
2021-06-08 14:36:30 -04:00
Jeff Becker
9a1a022d62
add relayOrder awareness to introset lookups.
...
* only propgate fail when relay order is non zero as zero relay order often fails
2021-06-08 14:36:30 -04:00
Jeff Becker
5074dd5f2b
re-enable multithreading on clients but not on service nodes
2021-06-08 14:36:30 -04:00
Jeff Becker
d7a51e88f5
make router tick 250ms instead of 100ms to prevent excessive log spam
...
limit calls to decommissioned warning to every 30s to prevent excessive log spam
2021-06-08 14:36:30 -04:00