Arceliar
|
7da4967f5e
|
Limit maximum queue size to 4 MB
|
2018-07-05 23:39:41 -05:00 |
|
Arceliar
|
a7c8be4d69
|
base backpressure decisions on queue size in bytes, instead of packet counts
|
2018-07-05 23:07:01 -05:00 |
|
Arceliar
|
b63b534fa7
|
drop packets that have been queued for longer than some timeout (currently 25ms) instead of using fixed length queues
|
2018-06-25 18:12:18 -05:00 |
|
Arceliar
|
7695a3fcbf
|
try using a simpler FIFO order for each backpressure buffer, since there are other mechanisms to penalize the flooding node, leads to better TCP throughput without affecting traffic between other nodes (does affect traffic in the same session, but there's hypothetically workarounds to that)
|
2018-06-24 20:20:07 -05:00 |
|
Arceliar
|
4ad2446557
|
cleanup
|
2018-06-24 18:21:00 -05:00 |
|
Arceliar
|
03949dcf3f
|
fix my terrible bug, I have no idea why the old one even worked
|
2018-06-24 18:05:00 -05:00 |
|
Arceliar
|
9c028e1d0d
|
switch to a separate queue per stream of traffic, FIXME for some reason this makes distance calculations more expensive in handleIdle?
|
2018-06-24 17:39:43 -05:00 |
|
Arceliar
|
189628b381
|
cleanup
|
2018-06-23 23:55:27 -05:00 |
|
Arceliar
|
0ad801bcfe
|
more work on backpressure, but still needs more testing
|
2018-06-23 23:33:03 -05:00 |
|
Arceliar
|
4b83efa218
|
more backpressure work, still needs testing
|
2018-06-23 21:51:32 -05:00 |
|
Arceliar
|
52a0027aea
|
switch refactoring, setup for a better approximation of local backpressure
|
2018-06-23 20:59:26 -05:00 |
|
Arceliar
|
988f4ad265
|
add a dedicated switch worker and start using it for lookups
|
2018-06-23 19:08:32 -05:00 |
|
Arceliar
|
2ae213c255
|
I'll try sorting, that's a good trick
|
2018-06-23 01:10:18 -05:00 |
|
Arceliar
|
cceecf4b1a
|
larger out queue size, make sure linkOut packets always get sent first
|
2018-06-22 23:46:42 -05:00 |
|
Arceliar
|
0021f3463f
|
slightly better way for the tcp sender goroutine(s) to block waiting for work
|
2018-06-22 20:39:57 -05:00 |
|
Neil Alexander
|
f68f779bee
|
Change box_pub_key to key in admin API
|
2018-06-22 22:26:17 +01:00 |
|
Arceliar
|
5dfa01a0e8
|
periodically clean up timed-out sessions and old signatures, instead of trying to do it when creating new sessions or adding new signatures
|
2018-06-21 20:31:30 -05:00 |
|
Arceliar
|
254be42614
|
gofmt
|
2018-06-21 10:39:43 -05:00 |
|
Arceliar
|
19014a198e
|
randomize the delay after tcp disconnects, to prevent synchronization issues
|
2018-06-21 10:38:31 -05:00 |
|
Arceliar
|
f599a1a2c1
|
start the pprof based on an env variable in debug builds, otherwise remove the flag/release.go stuff
|
2018-06-21 10:32:16 -05:00 |
|
Arceliar
|
496dc94f02
|
possibly mitigate livelock bug where lossy links lead to constant connect/disconnect cycles due to disagreement about which of the two duplicate autoconnection attempts to use
|
2018-06-16 15:31:25 -05:00 |
|
Arceliar
|
7fe038f87e
|
prevent parent nodes from forcing coord oscillation, have dht.handleRes clean up the old request info immediately
|
2018-06-14 12:32:18 -05:00 |
|
Neil Alexander
|
6c556da05e
|
Merge pull request #125 from Arceliar/cleanup
Cleanup
|
2018-06-14 15:26:34 +01:00 |
|
Arceliar
|
d9c9787611
|
avoid the proxy.SOCK5 connection attempt unless we're actually going to use the dialer
|
2018-06-14 09:21:35 -05:00 |
|
Arceliar
|
e8eaabf0c8
|
comment
|
2018-06-14 09:12:58 -05:00 |
|
Arceliar
|
57837057b7
|
tcp/socks cleanup
|
2018-06-14 09:11:34 -05:00 |
|
Arceliar
|
f7a7f601a0
|
cleanup old ugly session MTU code that only mattered with lossy UDP fragments
|
2018-06-14 08:38:43 -05:00 |
|
Arceliar
|
93ffc0b876
|
macos
|
2018-06-14 08:00:57 -05:00 |
|
Arceliar
|
e7fca66655
|
fix address/prefix code, platform specific parts still need testing
|
2018-06-14 07:58:07 -05:00 |
|
Arceliar
|
330175889e
|
switch address range from fd00::/8 to the deprecated 0200::/7 range
|
2018-06-14 07:08:48 -05:00 |
|
Arceliar
|
cd514799da
|
recover if p.doSend is closed due to a race between peers.doSendSwitchMsgs and peers.removePeer
|
2018-06-13 00:24:12 -05:00 |
|
Arceliar
|
b006748da4
|
code cleanup
|
2018-06-12 17:50:08 -05:00 |
|
Arceliar
|
9ce428af66
|
Merge pull request #112 from neilalexander/documentation
Adds more comments to ICMPv6 and TUN/TAP.
|
2018-06-12 17:11:24 -05:00 |
|
Neil Alexander
|
8e2c2aa977
|
Document ICMPv6 and TUN/TAP
|
2018-06-12 22:45:53 +01:00 |
|
Arceliar
|
24228bd381
|
disable unused configuration Net field and clean up comments to remove mention of UDP where no longer applicable
|
2018-06-12 14:00:04 -05:00 |
|
Arceliar
|
359af66d0d
|
exponential dht throttle backoff, and make it based on when packets were sent as part of bootstrapping/maintenance, not when arbitrary packets were received
|
2018-06-12 03:16:10 -05:00 |
|
Arceliar
|
56802d569e
|
minor documentation updates, code comments, and a couple of bugfixes that I noticed when going through the code to comment it
|
2018-06-10 18:03:28 -05:00 |
|
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 |
|