912 Commits

Author SHA1 Message Date
Arceliar
8e05c6c6a7 better search cleanup, but needs more testing to make sure it really works 2020-02-08 20:26:37 -06:00
Arceliar
d0e6846173 work in progress to make searches use parallel threads per response, so one malicious node doesn't block progress from honest ones 2020-02-08 20:15:48 -06:00
Arceliar
d7d0c2629c don't deduplicate search responses, but limit the max number of nodes handled per response 2020-02-08 17:04:00 -06:00
Arceliar
cd9613fddc add some additional debug timing info and logging to dials, and fix an unnecessary delay in search startup 2020-02-07 22:34:54 -06:00
Arceliar
3faa0b2854 deduplicate the list of nodes to visit in a search (keeping newest rumors) 2020-02-06 20:47:53 -06:00
Arceliar
7c2cb9a02d more search fixes/updates 2020-02-06 20:21:17 -06:00
Arceliar
cd856426e5 search timing changes 2020-02-06 18:37:58 -06:00
Arceliar
70659bfb91 sort search response results before sending requests 2020-02-06 17:38:42 -06:00
Arceliar
7e64f54c1f log some info about searches and reduce search traffic (especially when things dead-end) 2020-02-01 13:58:08 -06:00
Neil Alexander
c48c4ddc80
Merge pull request #641 from Arceliar/misc
Misc tuning
2020-01-10 11:35:51 +00:00
Neil Alexander
2fc6f9a71d
Merge pull request #643 from adamruzicka/mtu
Unify MTU datatypes across the codebase
2020-01-07 22:39:38 +00:00
Arceliar
c3b1a6af65 some nodeinfo actor fixes and adjust search timeout 2020-01-06 18:37:43 -06:00
Neil Alexander
8c12fc4fdb
Merge branch 'develop' into misc 2020-01-05 23:04:51 +00:00
Neil Alexander
9304873047
Convert nodeinfo to actor 2020-01-05 22:15:52 +00:00
Adam Ruzicka
8358fe5c5c Unify MTU datatypes across the codebase
The codebase uses int and unit16 to represent MTU randomly. This change
unifies it to a MTU type from types package, which is currently uint16.
2020-01-05 18:01:22 +00:00
Arceliar
8513f8f4dc constant space searches that should play nicer if searching for an unreachable destination 2020-01-04 16:08:48 -06:00
Arceliar
201dbec63d always keep the 2 closest nodes in each direction around the dht ring, possibly helps things recover faster after joins/leaves 2019-12-25 19:01:20 -06:00
Arceliar
9fac5355eb make searches more parallel 2019-12-25 18:55:29 -06:00
Dimitris Apostolou
73f50af3b7
Fix typos 2019-11-29 11:45:02 +02:00
Arceliar
98339cdc3f possible fix if monotonic time resolution is related to packet reordering 2019-11-25 17:40:58 -06:00
Arceliar
3e07995518 it helps to actually set the flag... 2019-11-24 18:53:58 -06:00
Arceliar
27cc57dbbc attempt to prevent incorrect idle notification in switch, needs testing 2019-11-24 18:24:17 -06:00
Arceliar
248a08b2f1 send a message to the sessions to update mtu instead of trying to update it directly 2019-11-21 19:23:44 -06:00
Neil Alexander
7c18c6806d
Further updates, notify sessions about updated MTU from API call 2019-11-21 09:54:36 +00:00
Neil Alexander
d1c445dc41
Thread safety for MTU API functions 2019-11-21 09:28:36 +00:00
Neil Alexander
e90be6f569
Add API functions for manipulating maximum session MTU, fix TUN/TAP to use that 2019-11-21 00:02:39 +00:00
Arceliar
5f1aea3636 fix deadlock when AddPeer fails 2019-11-12 21:01:32 -06:00
Arceliar
6d3aefb825 fix a data race when an existing session's coords are updated in response to a successful search 2019-10-27 19:55:35 -05:00
Arceliar
710815fed5 add dummy functions for other platforms 2019-10-25 19:32:53 -05:00
Arceliar
bcacfb0638 test adding BindToDevice to linux. if it works then we'll want to rethink slightly how we get the tcpContext on every platform, to make this compile everywhere and look a little cleaner 2019-10-25 18:33:23 -05:00
Neil Alexander
d58f88d29a
Update builds to Go 1.13 as this is required for TLS (apparently golang.org/x/crypto/ed25519 is not acceptable to the crypto/tls module and this prevents Yggdrasil from starting) 2019-10-24 09:28:09 +01:00
Arceliar
c3dee478f5 fix ed25519 dependency for golang 1.12 and earlier, though we may want to update builds to 1.13 anyway... 2019-10-23 20:38:09 -05:00
Arceliar
996c6b4f47 add one TODO comment and run gofmt 2019-10-23 20:28:11 -05:00
Neil Alexander
cd77727c1e
Set TCP socket options before upgrading connection 2019-10-23 18:24:08 +01:00
Neil Alexander
6a22e6c9de
Initial connection upgrade/TLS peering support 2019-10-23 17:26:35 +01:00
Arceliar
ea085663ea slight cleanup of dial's timeout 2019-10-21 20:52:16 -05:00
Arceliar
681c8ca6f9 safer dial timeout handling, in case it was used with a nil context or a context that had no timeout set 2019-10-21 20:47:50 -05:00
Arceliar
eccd9a348f give yggdrasil.Dialer the same interface as a net.Dialer, so the only differences are what fields exist in the struct 2019-10-21 19:44:06 -05:00
Arceliar
cb40874f97 have listener return a net.Conn, adjust yggdrasil.Conn to match this interface 2019-10-19 15:10:28 -05:00
Arceliar
3491292599 code cleanup 2019-10-12 15:46:56 -05:00
Arceliar
31ce854835 update session when a search for an existing session finishes 2019-10-12 15:37:40 -05:00
Arceliar
a1c413f769 fix nil pointer dereference in yggdrasil.Conn.search 2019-10-06 11:53:14 -05:00
Arceliar
c38e40e8e3 actually use doCancel in writeNoCopy 2019-10-05 12:23:21 -05:00
Arceliar
83e3a24423
Merge pull request #562 from AwesomePatrol/dev/patrol/bench01
#60 Add simple tests and benchmark
2019-10-05 12:20:27 -05:00
Arceliar
f474869ad9 cleanup bad comment 2019-10-05 12:17:40 -05:00
Arceliar
fb3430207c don't fail if there's an error setting bbr, just log it and continue 2019-10-05 11:03:38 -05:00
Arceliar
8e22d7137a use bbr congestion control on linux, note that we're not doing anything intelligent with the errors right now if setting it fails 2019-10-05 10:47:15 -05:00
Arceliar
f22eac497b typo 2019-10-03 18:50:33 -05:00
Arceliar
b2922189b8 fix deadlock from use of phony.Block by actors when ckr is enabled 2019-10-03 18:44:47 -05:00
Aleksander Mistewicz
783959208c Add more comments to explain helper functions 2019-09-28 14:41:53 +02:00