Commit Graph

401 Commits

Author SHA1 Message Date
Neil Alexander
f0947223bb
Only validate CKR routes if CKR enabled 2018-11-06 11:11:57 +00:00
Neil Alexander
19e6aaf9f5
Remove sourceSubnet from router 2018-11-06 00:06:37 +00:00
Neil Alexander
e3d4aed44a
Configure IPv6Sources 2018-11-06 00:05:01 +00:00
Neil Alexander
8c2327a2bf
Add source addresses option and more intelligent source checking 2018-11-05 23:59:41 +00:00
Neil Alexander
cfdbc481a5
Modify source address check for CKR 2018-11-05 23:22:45 +00:00
Neil Alexander
7218b5a56c
Don't look up public keys for Yggdrasil native addresses 2018-11-05 23:12:26 +00:00
Neil Alexander
c7f2427de1
Check CKR routes when receiving packets in router 2018-11-05 22:58:58 +00:00
Neil Alexander
87b0f5fe24
Use CKR in router when sending packets 2018-11-05 22:39:30 +00:00
Neil Alexander
295e9c9a10
Cache crypto-key routes (until routing table changes) 2018-11-05 17:31:10 +00:00
Neil Alexander
ec751e8cc7
Don't allow Yggdrasil ranges as crypto-key routes 2018-11-05 17:03:58 +00:00
Neil Alexander
52206dc381
Add initial crypto-key routing handlers 2018-11-05 16:40:47 +00:00
Arceliar
a008b42f99 cleanup and some bugfixes, cache important dht nodes until something gets added/removed 2018-10-29 22:24:18 -05:00
Arceliar
671c7f2a47 don't update recv time for known nodes that ping us or known peers 2018-10-28 15:04:44 -05:00
Arceliar
c0531627bc fix some chord dht bootstrapping bugs, no known cases where it now fails 2018-10-24 22:03:27 -05:00
Arceliar
253861ebd3 reverse dht ownership order from predecessor to successor, this plays nicer with the default 0 bits in unknown node IDs 2018-10-21 18:15:04 -05:00
Arceliar
5e3959f1d0 yet more debugging 2018-10-21 17:40:43 -05:00
Neil Alexander
aab0502a4a
Remove friendlyname traces, preserve endpoints 2018-10-21 23:20:14 +01:00
Arceliar
f0bd40ff68 more testing 2018-10-21 15:10:18 -05:00
Arceliar
bcbd24120d keep track of all keys we're supposed to care about in the dht, don't give special treatment to successors/predecessors 2018-10-21 14:57:04 -05:00
Arceliar
efe6cec11a more debugging, trying to understand bootstrap issues 2018-10-21 12:28:21 -05:00
Neil Alexander
b809adf981
Add FriendlyName option, show friendly name and real endpoint in admin socket/yggdrasilctl 2018-10-21 17:57:48 +01:00
Arceliar
6c59ae862a more debugging 2018-10-21 00:05:04 -05:00
Arceliar
95201669fe reintroduce (better) dht throttling 2018-10-20 22:06:36 -05:00
Arceliar
8825494d59 remove maintenance searches and throttle logic, to focus on debugging in this simpler case first 2018-10-20 20:11:32 -05:00
Arceliar
3dbffae99f add search for successor, via parent, to the dht maintenance cycle 2018-10-20 19:09:25 -05:00
Arceliar
d851d9afe7 add max pings before timing out a successor 2018-10-20 18:31:11 -05:00
Arceliar
63d6ab4251 more cleanup, comments, and dht reset() changes 2018-10-20 18:12:34 -05:00
Arceliar
f3ec8c5b37 fix admin dht function, more cleanup, and slowly throttle back dht traffic when idle 2018-10-20 17:58:54 -05:00
Arceliar
5a85d3515d cleanup 2018-10-20 17:32:54 -05:00
Arceliar
02f0611dde more debugging 2018-10-20 16:27:01 -05:00
Arceliar
1720dff476 add some debug output and get things to start working in the sim 2018-10-20 15:21:40 -05:00
Arceliar
03a88fe304 Try using a chord-like DHT instead of a kad-like one, work in progress, but it compiles at least 2018-10-20 14:48:07 -05:00
Neil Alexander
18428b0f93
Merge pull request #190 from neilalexander/sessionfirewall
Fix incorrect comment in config for SessionFirewall
2018-10-09 07:24:22 +01:00
Neil Alexander
eb42fd4973
Fix incorrect comment in config for SessionFirewall 2018-10-09 07:18:43 +01:00
Arceliar
ba8af20817
Merge pull request #187 from neilalexander/sessionfirewall
Add session firewall
2018-10-08 18:41:15 -05:00
Neil Alexander
1d00131416
Hopefully fix a concurrent map read-write when removing peers 2018-10-08 22:09:55 +01:00
Neil Alexander
1e6667567a
Update comments for session firewall in config 2018-10-08 19:57:14 +01:00
Neil Alexander
3ed63ede1e
Add AlwaysAllowOutbound to session firewall 2018-10-08 19:51:51 +01:00
Neil Alexander
3f237372c9
Only apply session firewall to pings for sessions we don't already have 2018-10-08 19:05:50 +01:00
Neil Alexander
2e2c58bfef
Add session firewall (extra security for controlling traffic flow to/from a given node) 2018-10-07 17:13:41 +01:00
Neil Alexander
81eea137d4
Merge branch 'develop' into getswitchqueues 2018-10-05 19:51:45 +01:00
Neil Alexander
605b6829db
Fix debug builds (broken by #182) 2018-10-05 19:28:46 +01:00
Neil Alexander
8eed15b813
Fix merge conflict in tcp.go from d027a9ba75 2018-10-04 12:26:08 +01:00
Neil Alexander
b6ff6e96cd
Merge pull request #184 from yggdrasil-network/source-interface
Ignore peer in InterfacePeers when source interface not found
2018-09-28 15:16:34 +01:00
Neil Alexander
d027a9ba75
Don't peer when source interface not found 2018-09-28 14:59:10 +01:00
Neil Alexander
69cd736112
Show queue capacity in getSwitchQueues 2018-09-27 16:19:47 +01:00
Neil Alexander
0b1a6611fd
Identify switchport for queue based on coords in stream ID 2018-09-27 15:05:45 +01:00
Neil Alexander
8113b4cc22
Update comments 2018-09-27 14:20:52 +01:00
Neil Alexander
b530916044
Show information about individual active queues 2018-09-27 12:14:55 +01:00
Neil Alexander
2674e1cb8b
Merge remote-tracking branch 'origin/develop' into getswitchqueues 2018-09-27 11:03:59 +01:00
Neil Alexander
f57567ea56
Add getSwitchQueues 2018-09-27 10:53:19 +01:00
Arceliar
7e3426ba93
Merge pull request #182 from yggdrasil-network/source-interface
Support adding peers on specific interfaces
2018-09-26 07:48:55 -05:00
Neil Alexander
b7f2f8b55c
Ignore interfaces that are not up 2018-09-25 19:46:06 +01:00
Neil Alexander
6844b9df51
Update comments in default config 2018-09-25 18:17:00 +01:00
Neil Alexander
387ae9ea6c
Only replace call name with interface prefix when interface is set 2018-09-25 18:05:57 +01:00
Neil Alexander
3f8a4ab17d
Add bytes_sent and bytes_recvd to getSwitchPorts 2018-09-25 17:59:01 +01:00
Neil Alexander
b368421dbd
Fix addPeer to make interface= optional 2018-09-25 17:13:35 +01:00
Neil Alexander
1796000b05
Change to InterfacePeers instead of modifying the tcp:// URI format 2018-09-25 16:55:57 +01:00
Neil Alexander
aecc151baf
Add support for specifying TCP source interface, i.e. tcp://a.b.c.d:e/eth0, for multiple simultaneous peerings to the same node over different interfaces 2018-09-25 15:32:45 +01:00
Arceliar
25661ebcad fix 0 port number on links to unknown nodes in the admin dot graph 2018-09-04 19:30:07 -05:00
Arceliar
e833cdfb98 fix debug builds and update whitepaper with old info from the .io site's about page 2018-08-18 13:24:02 -05:00
cathugger
b4db89ea9d
Avoid unnecessarily allocating coords slice if it's unchanged. 2018-07-30 13:44:46 +00:00
cathugger
67b8a7a53d
Ensure no memory allocations happen at hot path 2018-07-30 12:43:34 +00:00
Neil Alexander
c4e6894d6a
Copy sinfo.coords for safety 2018-07-30 13:34:32 +01:00
Neil Alexander
ebb4ec7c33
Clean up the flow a bit (partly because I am allergic to huge compounded if statements) 2018-07-30 11:46:44 +01:00
cathugger
68a482ed92
Simplify flowkey stuff further. 2018-07-30 02:15:57 +00:00
cathugger
36dcab9300
optimize wire_put_uint64; use protokey for flowlabel fallback. 2018-07-30 01:58:52 +00:00
cathugger
fec7100898
Clean up / clarify coords sending code. 2018-07-30 00:01:37 +00:00
cathugger
11b0a82c4a
Simpler flowlabel parsing; avoid using 0 flowlabel. 2018-07-29 22:09:16 +00:00
Arceliar
ddab8ecf33
Merge pull request #174 from cathugger/develop
Make TCP read timeouts configurable.
2018-07-29 10:39:43 -05:00
cathugger
d171552577
Make TCP read timeouts configurable.
This should be helpful on high-latency networks, like Tor or I2P.
Also gofmt.
2018-07-29 14:30:13 +00:00
Neil Alexander
38e8b036d2
Use addUint64 instead to not interfere with coordinate parsing 2018-07-22 18:33:53 +01:00
Neil Alexander
81fde1a805
Use flow label instead of TCP/UDP/SCTP source/destination ports 2018-07-22 18:16:03 +01:00
Neil Alexander
3f4295f8cd
Only split queues based on port number for TCP/UDP/SCTP, rely only on protocol number for other protos to prevent issues with IPIP, GRE, etc 2018-07-22 12:00:40 +01:00
Arceliar
9cbcaf39ac Use coords for queue stream IDs in the switch, and append protocol/port information to coords when sending, to designate different streams 2018-07-21 18:59:29 -05:00
Arceliar
996a593fa2 Sort dotgraph links by integer value 2018-07-20 23:02:25 -05:00
Arceliar
549d6f9dd2
Merge pull request #163 from neilalexander/tapmtu
Cap MTU on Linux in TAP mode
2018-07-19 18:25:03 -05:00
Arceliar
9ff08c1b34
Merge pull request #165 from cathugger/master
rearrange tcp reading loop
2018-07-19 18:18:51 -05:00
cathugger
91a374d698 rearrange tcp reading loop
according to documentation of io.Reader interface,
"Callers should always process the n > 0 bytes returned before considering the error err. Doing so correctly handles I/O errors that happen after reading some bytes and also both of the allowed EOF behaviors."
2018-07-19 21:58:53 +00:00
Neil Alexander
55b56e8686
Normalise startup output for TUN/TAP on Linux and Windows 2018-07-19 10:15:26 +01:00
Neil Alexander
df9cadd938
Cap MTU on Linux in TAP mode 2018-07-19 10:01:12 +01:00
Arceliar
1baafdd17d
Merge pull request #162 from cathugger/master
More verbose disconnect messages
2018-07-18 22:55:45 -05:00
cathugger
f4bb2aaaeb More verbose disconnect messages 2018-07-19 01:03:24 +00:00
Neil Alexander
cff7ef026f
Make yggdrasilctl less case-sensitive 2018-07-09 19:30:41 +01:00
Neil Alexander
f21cbaef9c
Fix debug builds after changes in #155 2018-07-09 09:38:48 +01:00
Neil Alexander
d59bdfeb99
Fail to TCP when parsing AdminListen 2018-07-08 10:37:20 +01:00
Arceliar
bf90447cc4 update admin socket error message and run gofmt 2018-07-07 19:37:36 -05:00
Neil Alexander
b24c7ffa6b
Resolve merge conflict with platformdefaults 2018-07-07 20:08:23 +01:00
Neil Alexander
a5af69df8a
Use Close() for admin socket 2018-07-07 20:04:11 +01:00
Neil Alexander
2a931df07a
Try to clean up UNIX domain admin sockets if shutdown properly 2018-07-07 12:34:10 +01:00
Neil Alexander
14d48597da
Fix openbsd and netbsd 2018-07-07 12:18:03 +01:00
Neil Alexander
36c89da848
Stick with tcp://localhost:9001 as default for now 2018-07-07 12:16:55 +01:00
Neil Alexander
1692bd98fd
Centralise platform defaults into the 'defaults' package 2018-07-07 12:08:52 +01:00
Neil Alexander
cd6030ec8f
Add support for UNIX domain admin sockets and specifying URIs in AdminListen 2018-07-07 11:22:49 +01:00
Arceliar
ba4047b51a correctly update buffer sizs when buffers overflow, and returned freed packets to the byte store 2018-07-06 17:27:04 -05:00
Arceliar
ad5dc9ea87 Drop 1 packet instead of a whole queue when overflowing 2018-07-06 00:55:00 -05:00
Arceliar
e6a47f705d when dropping a queue, select one at random based on queue size in bytes 2018-07-06 00:11:36 -05:00
Arceliar
1a65c065d0 prioritize sending from small queues that have been blocked for a long time 2018-07-05 23:56:37 -05:00
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