Commit Graph

266 Commits

Author SHA1 Message Date
Arceliar
038a51fd13 it helps to add new files 2018-06-09 18:44:59 -05:00
Arceliar
72cca4ea43 version check/warning adjustments 2018-06-09 18:38:30 -05:00
Arceliar
076350f963 remove old tcp key exchange code 2018-06-09 17:49:02 -05:00
Arceliar
8733099516 add version metadata to key exchange at the start of connections 2018-06-09 17:46:19 -05:00
Arceliar
f5c850f098 better way to do wire signed ints (no negative zero, remove conditionals) 2018-06-09 16:36:13 -05:00
Arceliar
e5eb6de1f6 add inner crypto to linkProtoTraffic, using ephemeral keys, to prevent replay attacks from spoofing peer connections 2018-06-08 18:42:56 -05:00
Arceliar
1dcc60f054 check root before accepting that a message is good and unblocking a new peer 2018-06-08 17:33:16 -05:00
Arceliar
f30d040366 Merge branch 'master' of https://github.com/yggdrasil-network/yggdrasil-go into develop 2018-06-08 16:17:24 -05:00
Arceliar
495891d9e8 remove testing panics 2018-06-07 22:32:01 -05:00
Arceliar
e29f700dd6 enable multicast on interfaces that come up after startup 2018-06-07 22:07:19 -05:00
Arceliar
ea1d21f7e5 don't change dhtInfo.pings when sending a search, to prevent multiple different searches from evicting a node 2018-06-07 21:28:08 -05:00
Arceliar
bced15b138 remove TTL from traffic packets 2018-06-07 20:29:22 -05:00
Arceliar
84c13fac90 don't use TTL 2018-06-07 20:18:13 -05:00
Arceliar
fe12e1509a add a throttle to nodes in the dht. the throttle is gradually increased each time the node is pinged. it determines the minimum amount of time to wait between using the node in a bootstrapping search 2018-06-07 17:55:43 -05:00
Arceliar
ec1c173ca5 it helps to check that messages decoded correctly 2018-06-07 16:53:39 -05:00
Arceliar
bcfeb22915 more tcp debugging 2018-06-07 16:49:51 -05:00
Arceliar
63feed8dc3 adjust tcp timeout and add shadow queues to track dropped packets 2018-06-07 15:04:17 -05:00
Arceliar
c1f8baf9b5 update dht.reset() to possibly play better with coord changes 2018-06-07 14:39:43 -05:00
Arceliar
d468882147 cleanup 2018-06-07 14:24:02 -05:00
Arceliar
f8ba80e7d8 remove old switchMessage and clean up related code 2018-06-07 14:13:31 -05:00
Arceliar
00e4da28c7 use/store switchMsg in the switch instead of going through the old switchMessage 2018-06-07 13:56:11 -05:00
Arceliar
3dab94be9f keep dht peers alive 2018-06-07 10:58:24 -05:00
Arceliar
deb755e3e9 remove peer.linkIn channel and related logic 2018-06-07 00:49:06 -05:00
Arceliar
ecf37cae8a make the switch react to peer coord changes immediately, and send out updates immediately 2018-06-07 00:16:47 -05:00
Arceliar
85afe187ff remove peer timeout logic from the switch, so switch peer entrires are only removed when the peer struct is removed 2018-06-06 23:23:16 -05:00
Arceliar
3b783fbf97 move periodic switch maintenance into the router instead of its own goroutine 2018-06-06 23:10:33 -05:00
Arceliar
5dc0cb5544 move wire_encode_locator logic into getBytesForSig, since that's the only place it's used 2018-06-06 23:00:17 -05:00
Arceliar
1e7d34492d fix signature checks and add some TODO reminder comments 2018-06-06 22:39:22 -05:00
Arceliar
5fb33da3a2 remove old switch anc/hop/res code 2018-06-06 21:18:21 -05:00
Arceliar
6811759fc9 add new switchMsg struct to replace old anc/hop/res approach 2018-06-06 21:11:10 -05:00
Arceliar
690d29435d adjust link packet logic so they bypass the lifo stack and are delivered first 2018-06-06 17:44:10 -05:00
Arceliar
bbae9ff8e8
Merge pull request #92 from Arceliar/backpressure
Use backpressure instead of estimated bandwidth
2018-06-06 16:58:48 -05:00
Arceliar
fad6f6b50e remove udp.go 2018-06-06 16:57:36 -05:00
Arceliar
da928af361 fix sim and run gofmt 2018-06-06 16:49:23 -05:00
Arceliar
240841eb38 remove unused recursive search packets 2018-06-06 16:46:15 -05:00
Arceliar
1b89892610 remove UDP, to be replaced with a better implementation later 2018-06-06 16:40:35 -05:00
Neil Alexander
6d9d01dae1 Fix IfName='none' 2018-06-02 23:29:06 +01:00
Arceliar
b9ea5350c6 update search.go comments to describe the iterative approach 2018-06-02 16:45:45 -05:00
Arceliar
3e1ac81854 allow searches to start with nodes further from the destination than ourself 2018-06-02 16:39:34 -05:00
Arceliar
45abfafbba value instead of pointer types for search dest/mask 2018-06-02 16:33:58 -05:00
Arceliar
34939d4b18 update for wire format changes 2018-06-02 16:30:05 -05:00
Neil Alexander
bbdcee1015 Export fields of sessionPing, dhtReq, dhtRes 2018-06-02 22:19:42 +01:00
Neil Alexander
49af65296d Export fields of wire structs 2018-06-02 21:21:05 +01:00
Arceliar
28e6c738e2
Merge branch 'master' into iterdht 2018-06-02 15:00:24 -05:00
Arceliar
09baad48e3 retry failed iterative searches, possibly becoming parallel if things are just slow, and keep track of / skip nodes that were already visited in the search 2018-06-02 14:57:06 -05:00
Neil Alexander
bc37d4fb76 Improve formatting of dot: dashed grey for unknown nodes, sans-serif text 2018-06-02 14:24:06 +01:00
Arceliar
ed6c9c2a54 deduplicate dht responses when adding them to the search, limit the search toVisit size 2018-06-02 00:29:36 -05:00
Arceliar
10a72444e3 get itersearch to run in the sim 2018-06-02 00:16:47 -05:00
Arceliar
ecf7e490d7 start of iterative dht searches 2018-06-01 23:34:21 -05:00
Neil Alexander
ec80a81ed5 Mark extrapolated nodes with dashed outline 2018-06-01 23:33:02 +01:00
Neil Alexander
e4082f218f Add text to dot graph explaining how a node is known 2018-06-01 23:23:24 +01:00
Neil Alexander
a2df5107f0
Change colour scheme: green for self, yellow for peer, blue for open session, white for DHT 2018-06-01 14:20:47 +01:00
Arceliar
ca15bbea57 try color coding dot output 2018-05-31 20:28:09 -05:00
Neil Alexander
ccf71af6b7
Move Init from core.go to debug.go as function is only for simulator 2018-05-27 23:37:57 +01:00
Neil Alexander
460a22c063
Clean up some exported constants 2018-05-27 23:31:34 +01:00
Neil Alexander
a9e61d0d37
Add support for building "release" builds that don't contain pprof which are substantially smaller. To build a "debug" build, use "-tags debug" with "go build" 2018-05-27 23:22:50 +01:00
Neil Alexander
35173e2388
Fix starting TUN read/write 2018-05-27 22:35:30 +01:00
Neil Alexander
4c115de633
De-debug 2018-05-27 22:13:37 +01:00
Arceliar
38e7704161 use backpressure instead of estimated bandwidth, sorted by uptime to break ties 2018-05-27 13:37:35 -05:00
Arceliar
02ba9dc97c fix npe, these don't need to be pointers 2018-05-27 13:22:21 -05:00
Arceliar
7b12493417 panic if tcp startup fails, since otherwise a nil pointer occurs in multicast. make udp do the same thing. 2018-05-27 12:56:33 -05:00
Neil Alexander
a0f547cc1b
Fix being able to enable/disable multicast 2018-05-26 21:50:47 +01:00
Neil Alexander
bc899c395a
Fix accidental truncation of addresses ending in 8 on macOS and BSD 2018-05-26 21:47:54 +01:00
Neil Alexander
5d87601118
Add getMulticastInterfaces and getSelf to yggdrasilctl 2018-05-23 22:13:52 +01:00
Neil Alexander
1fd53bcb7d
Update comments in configuration 2018-05-23 14:02:13 +01:00
Neil Alexander
ce854a76bd
Add -normaliseconf option and temporarily correct old config item names in running config 2018-05-23 12:04:27 +01:00
Neil Alexander
9d9083e373
Update configuration names, fix multicast interface selection 2018-05-23 11:28:20 +01:00
Neil Alexander
6f79184c9b
Move multicasting into yggdrasil package 2018-05-23 11:13:53 +01:00
Neil Alexander
388ae09fca
Rename some config items 2018-05-22 23:43:29 +01:00
Arceliar
b10ae51565
Merge pull request #85 from neilalexander/yggdrasilctl
Human-readable formatting in yggdrasilctl
2018-05-21 19:21:00 -05:00
Neil Alexander
04b3e84023
Show your IPv6 address and subnet when starting 2018-05-21 16:15:31 +01:00
Neil Alexander
9567446f50
Offload formatting to yggdrasilctl and keep precision in JSON 2018-05-21 15:21:23 +01:00
Neil Alexander
59688dcab3
Fix formatting of bytes_sent, bytes_recvd, last_seen, uptime 2018-05-21 15:05:01 +01:00
Neil Alexander
ca3e541d3b
Friendly formats for getDHT, getSessions, setTunTap etc 2018-05-21 14:14:57 +01:00
Neil Alexander
201701ae4a
Add some pretty printing to yggdrasilctl, small modifications to JSON formatting in admin socket 2018-05-21 13:54:51 +01:00
Neil Alexander
bd32f5890b
Run gofmt -s -w 2018-05-21 07:28:03 +01:00
Neil Alexander
79131bb959
Minor tweaks 2018-05-20 23:25:07 +01:00
Neil Alexander
aae570de2a
Optional parameters are now square instead of pointed brackets, avoid nils for help 2018-05-20 21:57:05 +01:00
Neil Alexander
c765e0566f
Convert rest of functions, fix setTunTap 2018-05-20 21:54:15 +01:00
Neil Alexander
c75566d5ac
Various fixes and error catching, add setTunTap 2018-05-20 21:44:30 +01:00
Neil Alexander
4ecc7ce860
Add getTunTap to JSON admin socket 2018-05-20 19:42:37 +01:00
Neil Alexander
c3ca5c64b1
Add some more functions to JSON admin socket 2018-05-20 19:23:43 +01:00
Neil Alexander
9713e73969
Fix dot 2018-05-20 17:25:13 +01:00
Neil Alexander
a6ef7166ea
Start JSON-ifying the admin socket 2018-05-20 17:21:14 +01:00
Arceliar
5c0636eb3d add uptime and bytes sent/recvd to peer struct and getPeers 2018-05-18 20:41:02 -05:00
Neil Alexander
ca96bbf014
Accept exchanging an MTU of 0 to signify that TUN/TAP is disabled, don't send traffic to a node in that case 2018-05-18 18:56:33 +01:00
Neil Alexander
ec371af84f
Track TX/RX bytes over session and if MTU was adjusted, add to admin socket getSession 2018-05-18 17:59:29 +01:00
Arceliar
ec8fe338d5 more insertIfNew bugfixes, and add peerOnly to getDHT output (true if a node is in the bucket.peers slice instead of bucket.others--it means they're not regularly pinged, they're only there to make sure DHT lookups include them as a result, for bootstrapping reasons) 2018-05-17 21:43:26 -05:00
Arceliar
fe518f4e3f bugfixes related to peer timeouts in the DHT, significantly improve DHT bootstrap speed 2018-05-17 21:20:31 -05:00
Arceliar
8d9887294c add dht time since last ping to admin socket, some DHT code cleanup, bugfix to insertIfNew 2018-05-17 19:32:29 -05:00
Arceliar
d98640fd59 switch cleanup 2018-05-16 17:48:53 -05:00
Arceliar
6b51b44cbf slightly better variable naming 2018-05-16 17:36:37 -05:00
Arceliar
800ccaa3d4 cleanup 2018-05-16 17:32:26 -05:00
Arceliar
fe712d24f8 don't allow buckets to overflow when the next bucket isn't full 2018-05-16 17:24:38 -05:00
Arceliar
8228242eed misc dht and tree changes to stabilize coords and bootstrap the dht faster 2018-05-15 23:57:00 -05:00
Arceliar
96c55da987
Merge pull request #76 from neilalexander/hjson
Use HJSON for config instead of JSON
2018-05-13 15:09:28 -05:00
Neil Alexander
5299783e35
Add getTunTap to admin socket 2018-05-10 09:48:12 +01:00
Neil Alexander
e381808704
Add ability to select interface by friendly name on Windows 2018-05-09 16:42:24 +01:00
Neil Alexander
8ea3070a02
Small tweaks/clean up 2018-05-09 14:03:28 +01:00
Neil Alexander
45b106168e
Use HJSON instead of JSON 2018-05-09 13:54:31 +01:00