659 Commits

Author SHA1 Message Date
Arceliar
426d157025 make sure we don't replace an existing listener 2019-03-08 18:51:07 -06:00
Neil Alexander
917ca6c1c5
Make changes based on review comments 2019-03-08 10:26:46 +00:00
Arceliar
02b1892cc5 try to switch parents if a parent link is blocked 2019-03-07 21:36:12 -06:00
Neil Alexander
b8cabf3212
Support removing Listen interfaces at runtime properly 2019-03-06 16:40:48 +00:00
Neil Alexander
531d9f39ca
Fix multicast bug, set static multicast interval 15 seconds 2019-03-06 12:15:40 +00:00
Neil Alexander
c0d5a8c0bd
Clean up old listeners first 2019-03-06 12:09:57 +00:00
Neil Alexander
f4e17b9a9f
Properly handle multicast interfaces going up and down 2019-03-06 12:07:33 +00:00
Neil Alexander
de2aff2758
Refactor multicast so that it creates a new TCP listener for each interface with LL addresses (so that it will not break if Listen is not set with a wildcard address) 2019-03-06 11:06:13 +00:00
Neil Alexander
19267beb9e
Merge branch 'develop' into multilink 2019-03-05 22:07:20 +00:00
Neil Alexander
236692bdc4
Add getTunnelRouting and setTunnelRouting (fixes #362) 2019-03-05 17:55:46 +00:00
Neil Alexander
a17d6d3a68
Fix getTunTap (fixes #363) 2019-03-05 17:37:26 +00:00
Neil Alexander
2ef823e69c
Fix deadlock when reconfiguring multicast 2019-03-04 23:16:46 +00:00
Neil Alexander
88925d3e06
Centralise call/listen functions in link.go 2019-03-04 22:45:35 +00:00
Neil Alexander
61774aed3b
Show proto in admin socket, link linkInfo from peer, other fixes 2019-03-04 20:33:08 +00:00
Neil Alexander
2b8648e2b3
Fix debug builds 2019-03-04 19:04:09 +00:00
Neil Alexander
0be0b078cb
Remove unused types in link.go 2019-03-04 19:00:06 +00:00
Neil Alexander
eeede4e6d0
Fix some obvious concurrency bugs 2019-03-04 18:47:40 +00:00
Neil Alexander
82bb95b77f
Some more (inelegant) multiple listener code plus some reconfigure support 2019-03-04 18:41:32 +00:00
Neil Alexander
be8db0c120
Support multiple TCP listeners 2019-03-04 17:52:57 +00:00
Neil Alexander
ae79246a66
Move TCP under link.go 2019-03-04 17:09:48 +00:00
Neil Alexander
918ce5a3fc
Add a timeout on the UNIX admin socket check 2019-03-03 19:32:36 +00:00
Neil Alexander
c940bae9e3
Update output 2019-03-03 14:15:01 +00:00
Neil Alexander
8f66d5b8dd
Try to clean up UNIX admin socket 2019-03-03 14:09:54 +00:00
Neil Alexander
3c733eadb4
Merge pull request #350 from neilalexander/awdl
Wake AWDL for multicast peering on macOS
2019-03-02 10:33:47 +00:00
Neil Alexander
12e088ab9e
Remove unnecessary Cgo line 2019-03-01 19:34:53 +00:00
Neil Alexander
e99903bf72
Wake up AWDL on Darwin if awdl0 is an enabled multicast interface 2019-03-01 19:26:50 +00:00
Neil Alexander
a6ae159329
Give some more feedback that a configuration reload actually happens 2019-03-01 18:26:52 +00:00
Arceliar
304f22dc1d re-enable session workers in a way that doesn't block and drops packets before decrypting if necessary 2019-02-28 20:05:21 -06:00
Arceliar
06df791efc buffer packets moving from the switch to the router, allow them front drop if there's too many 2019-02-28 19:08:56 -06:00
Arceliar
371b5ca6a2 Change log message about AllowedEncryptionPublicKeys from Debug to Warn 2019-02-28 18:49:34 -06:00
Arceliar
2569242050 fixes to linkInterface.handler() 2019-02-26 21:07:56 -06:00
Arceliar
def4fb3587 fix timeout and improve logging on connection close 2019-02-24 14:48:16 -06:00
Arceliar
654407dc6d close long-dead connections in link.go instead of in switch.go, this is important in case a connection opens but never bothers to send even one switch message 2019-02-24 13:24:55 -06:00
Arceliar
bb3edd5e55 add the relevant error to the default logging when a connection is closed 2019-02-24 12:59:30 -06:00
Arceliar
042adb0516 make sure the only place traffic is ever dropped is in the switch. this currently disables the dedicated crypto workers 2019-02-23 00:07:00 -06:00
Arceliar
e31962de0f Merge branch 'develop' into switch 2019-02-16 16:26:20 -06:00
Arceliar
6f0bbbfb98 Debug some issues with the state machine that tracks idle connections in link.go 2019-02-15 19:35:10 -06:00
Arceliar
3c9c8672c9 Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into switch 2019-02-15 16:28:48 -06:00
Neil Alexander
0ca64b0abe
Remove ReadTimeout configuration option 2019-02-10 12:13:49 +00:00
Arceliar
21cecf4630 consistently prioritize which peer to forward to instead of letting it be partly random 2019-02-09 17:44:25 -06:00
Arceliar
ad43558fbb fix bug in switch time 2019-02-09 15:30:17 -06:00
Arceliar
74ac535d55 slightly faster switch logic, should be easier to have a useful tie-breaker for peers that are equally close to the destination via the tree metric 2019-02-08 19:46:11 -06:00
Arceliar
41f49faaa0 get code running in the netns test again, remove unnecessary allocations that were found in profiling 2019-02-05 17:39:59 -06:00
Arceliar
2f8dd5dde0 remove race condition in setting peer.close by requiring it as an argument to newPeer 2019-02-03 15:50:25 -06:00
Arceliar
5ddf84f329 remove peers completely after a long switch timeout, this could use some improvement later 2019-02-03 15:22:14 -06:00
Arceliar
ebbe5f67ad don't time out a link unless we were expecting an ack and didn't get one 2019-02-02 22:41:51 -06:00
Arceliar
b44a0f29f3 send an ack if we receive a packet and don't have any return traffic, keeping a legacy 4-second keep-alive in case there's no traffic at all to send (to be removed later, after nodes have upgraded), ideally we should either remove ReadTimeout or use it for the switch idle timeout instead 2019-02-02 22:18:55 -06:00
Neil Alexander
43f798e82e
Check link-local in tcp.go, track direction in link.go, fix compile error for mobile.go 2019-02-01 00:02:17 +00:00
Neil Alexander
ec5f7d9879
Enforce AllowedEncryptionPublicKeys for all peers inc. link-local 2019-01-31 23:47:20 +00:00
Neil Alexander
432f93de89
Check AllowedEncryptionPublicKeys 2019-01-31 23:29:18 +00:00
Neil Alexander
e36f88c75f
Info logging when link connects/disconnects 2019-01-31 23:18:02 +00:00
Arceliar
05962b2cbd disable idle nodes in the switch instead of killing the connection entirely. this implementation is ugly, but i think it maybe works 2019-01-30 20:58:23 -06:00
Neil Alexander
2466c54a71
Update debug lines in link.go 2019-01-27 20:56:10 +00:00
Neil Alexander
1a3a67f205
Merge remote-tracking branch 'origin/develop' into link
Fix merge conflicts from flexible logging branch
2019-01-27 20:54:21 +00:00
Neil Alexander
22d2e0e4fe
Fix debug builds 2019-01-27 13:33:32 +00:00
Neil Alexander
0838928668
Add support for flexible logging levels 2019-01-27 13:31:43 +00:00
Arceliar
6ef0e47632 fix merge conflict 2019-01-26 14:27:37 -06:00
Arceliar
bca69df1f6 possible workaround to a deadlock 2019-01-26 14:07:18 -06:00
Neil Alexander
705b914d00
Move awdl into link 2019-01-23 19:42:33 +00:00
Neil Alexander
188a9e439d
Bug fixes for AWDL 2019-01-23 18:16:31 +00:00
Neil Alexander
2944be4faf
Further tweaks 2019-01-23 17:05:16 +00:00
Neil Alexander
81545fd9bf
Clean up 2019-01-23 15:16:22 +00:00
Neil Alexander
9c6cf50684
Adapt AWDL to link 2019-01-23 15:08:19 +00:00
Arceliar
7b2460662d close the connection before blocking a duplicate link 2019-01-22 21:53:39 -06:00
Arceliar
f936151f2d correctly clean up various things 2019-01-22 21:48:43 -06:00
Arceliar
eb8951081d fix duplicate connection bug, I think this is also in develop 2019-01-22 21:23:57 -06:00
Arceliar
12c0e019dc only create one interface, but still opens duplicate connections before it catches this, so more work is needed 2019-01-22 21:16:41 -06:00
Arceliar
f95663e923 actually finish initializing peers 2019-01-22 18:24:15 -06:00
Arceliar
137212d8cf work in progress, establishes TCP connections and gets through metadata handshake using the link code, but doesn't seem to send traffic yet (no switch peers are created) 2019-01-21 23:08:50 -06:00
Arceliar
5a4d6481dd Work in progress, add a linkInterfaceMsgIO interface type and make stream implement it, this will be used by link 2019-01-21 21:27:52 -06:00
Neil Alexander
ad6ec6ab11
Merge pull request #315 from neilalexander/flowlabel
Update switch flow separation for IPv4
2019-01-21 23:22:40 +00:00
Neil Alexander
62d4d62a77
Update comments 2019-01-21 16:24:29 +00:00
Neil Alexander
d3f67ad017
Improve command flow 2019-01-21 16:22:49 +00:00
Neil Alexander
cdfb930703
Update switch flow separation for IPv4 2019-01-21 12:27:29 +00:00
Arceliar
c8e1be0f73 link/stream refactoring bugfixes and gofmt 2019-01-19 16:37:45 -06:00
Neil Alexander
41a410f2a1
Initialise awdl.go from link.go, remove deadlock between awdl.create and link.create, other bits and pieces 2019-01-19 12:19:24 +00:00
Neil Alexander
c51a3340b1
Update awdl.go to use new link stuff (untested) 2019-01-19 00:42:53 +00:00
Neil Alexander
4ae36dfffe
Merge branch 'ios' into link 2019-01-19 00:23:38 +00:00
Neil Alexander
6fe3b01e90
Rename awdl.go to link.go, add stream.go, update tcp.go 2019-01-19 00:14:10 +00:00
Neil Alexander
30df632eb2
Merge branch 'develop' into ios 2019-01-17 23:15:00 +00:00
Neil Alexander
c839012580
Fix source address selection 2019-01-17 23:06:59 +00:00
Neil Alexander
9d5085492e
Handle session firewall using central config 2019-01-16 20:38:51 +00:00
Neil Alexander
fdf300a1ff
Handle AllowedEncryptionPublicKeys internally 2019-01-16 20:26:39 +00:00
Neil Alexander
68eb684f6d
Fix mobile.go now that multicast interfaces are handled internally 2019-01-16 19:27:44 +00:00
Neil Alexander
8baf593b62
Update source address selection when sintf specified 2019-01-16 14:52:27 +00:00
Neil Alexander
c85dbaea95
Fix missing nodeinfo.init 2019-01-16 13:23:26 +00:00
Neil Alexander
4fba558638
Fix concurrent map write in tcp.go 2019-01-16 13:20:12 +00:00
Neil Alexander
53be1b02f3
Check if accepting socket produced an error 2019-01-15 08:53:57 +00:00
Neil Alexander
2cd373fc1e
Remove unnecessary selects 2019-01-15 08:51:19 +00:00
Neil Alexander
39567bed83
Address some comments 2019-01-15 08:44:33 +00:00
Neil Alexander
3bf53796a7
Merge branch 'develop' into nodeconfig 2019-01-15 08:37:10 +00:00
Arceliar
248edf8319
Merge pull request #304 from deavmi/develop
Spelling fixes
2019-01-14 21:27:15 -06:00
Neil Alexander
d9ddf30faf
Fix debug builds 2019-01-14 19:29:22 +00:00
Neil Alexander
f6b663c257
Make multicasting use config instead of ifceExpr in Core 2019-01-14 19:27:13 +00:00
Neil Alexander
9e486ed4fe
Move nodeinfo into router 2019-01-14 19:05:16 +00:00
Neil Alexander
5cde3b5efc
Update nodeinfo in router reconfigure 2019-01-14 18:51:49 +00:00
Neil Alexander
9e186bdd67
Remove mutexes from CKR and use router goroutine/doAdmin for update config 2019-01-14 18:34:15 +00:00
Neil Alexander
51026d762e
Make session firewall thread-safe for config updates 2019-01-14 18:24:35 +00:00
Neil Alexander
bd04124e43
Reconfigure support for crypto-key routing 2019-01-14 18:06:41 +00:00
Neil Alexander
28072c9fe2
Make CKR thread-safe 2019-01-14 17:41:08 +00:00