Jiang Zihao
0edca7e16a
Fix purge_expired_registrations to accept passed-in last_purge instead of static function var.
2019-05-22 22:46:23 +02:00
emanuele-f
59011308b2
Ignore invalid community when not received from supernode
...
The packet may be received from a multicast registration from a local peer.
Fixes #107
2019-05-22 22:40:42 +02:00
emanuele-f
381c795af5
Lower registration timeout to 1 minute
2019-05-22 22:21:26 +02:00
emanuele-f
04226c09c8
Fix compilation warnings and little leak
2019-05-21 22:53:55 +02:00
emanuele-f
bc904cfbcc
Skip localhost received sockets
2019-05-06 00:40:26 +02:00
emanuele-f
e2861e5f71
Fix send error in peer registration refresh
2019-05-06 00:08:08 +02:00
emanuele-f
49fd9fc5da
Discard idle known_peers to avoid connection blocking on disconnection
...
Fixes #103
2019-05-05 23:48:48 +02:00
emanuele-f
824b45a808
Add linux termination handler and print stats on shutdown
2019-05-05 21:47:50 +02:00
emanuele-f
d5387945b4
Add the -i option to specify registration interval on edge nodes
...
Registration is bound to UDP NAT hole punching, so the edges should choose their own value.
2019-05-05 21:24:53 +02:00
emanuele-f
856dbae44c
Cosmetic changes to improve edge registration tracing
2019-05-05 19:09:51 +02:00
Luca Deri
fbc3754601
Compilation fix
2019-05-05 10:08:21 +02:00
Emanuele Faranda
87bf4ca298
Merge pull request #100 from emanuele-f/transop-rework
...
Rework transops and api
2019-05-04 19:14:01 +00:00
Luca Deri
18388c8e05
Added service dependency
2019-05-02 09:22:33 +02:00
emanuele-f
c89ece71ca
Code rework changes
...
- Remove keyschedule leftover and adapt to new API
- Fix cleanup functions
- Remove unused random_device_mac
2019-04-27 15:55:07 +02:00
emanuele-f
f577d997a7
Drop keyschedule support
...
- Legacy features are now moved to the legacy directory with readme
- Keyschedule feature is not supported anymore
2019-04-27 12:42:06 +02:00
emanuele-f
e757f94efa
Initial code rework (wip)
...
- The edge structure is now opaque
- The configuration is now exposed via an API
- Code cleanup: using multiple transops at once is not supported anymore
2019-04-27 01:56:57 +02:00
emanuele-f
08b992cbb7
Add more detailed error message when TAP open fails
...
Closes #94
2019-04-24 01:02:36 +02:00
emanuele-f
fc16352198
Add decryption test in benchmark
2019-04-22 01:39:09 +02:00
emanuele-f
c702ca8686
Move AES IV out of struct sa_aes
2019-04-22 01:24:58 +02:00
emanuele-f
84593a2254
memcpy fix
2019-04-16 02:23:01 +02:00
emanuele-f
bb07f0426e
Properly initialize AES IV and hash the AES key
...
This implements the changes discussed in #68 and #72 .
This breaks compatibility with the previous AES implementation.
This also fixes two problems reported by valgrind:
==4887== Invalid write of size 2
==4887== at 0x483E9DB: memmove (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4887== by 0x10E37F: setup_aes_key (transform_aes.c:378)
==4887== by 0x10E451: add_aes_key (transform_aes.c:401)
==4887== by 0x10ED10: transop_aes_setup_psk (transform_aes.c:580)
==4887== by 0x10A547: main (benchmark.c:92)
==4887== Address 0x4d574a0 is 0 bytes after a block of size 16 alloc'd
==4887== at 0x4839B65: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4887== by 0x10E337: setup_aes_key (transform_aes.c:374)
==4887== by 0x10E451: add_aes_key (transform_aes.c:401)
==4887== by 0x10ED10: transop_aes_setup_psk (transform_aes.c:580)
==4887== by 0x10A547: main (benchmark.c:92)
==13057== Use of uninitialised value of size 8
==13057== at 0x49023B3: ??? (in /usr/lib/libcrypto.so.1.1)
==13057== by 0x490346A: AES_cbc_encrypt (in /usr/lib/libcrypto.so.1.1)
==13057== by 0x11270A: transop_encode_aes (transform_aes.c:230)
==13057== by 0x10F5CD: send_packet2net (edge_utils.c:1224)
==13057== by 0x10F813: readFromTAPSocket (edge_utils.c:1278)
==13057== by 0x1106A8: run_edge_loop (edge_utils.c:1596)
==13057== by 0x10B9F7: main (edge.c:701)
2019-04-16 02:09:13 +02:00
emanuele-f
d689691599
n2n.h cleanup
2019-04-14 18:08:51 +02:00
emanuele-f
3149a77753
Replace fprintf with traceEvent
2019-04-14 17:33:57 +02:00
emanuele-f
49d5ecf2a8
Reduce duplicated code in quick_edge_init
2019-04-14 17:21:47 +02:00
emanuele-f
50bc1492e2
Remove unnecessary structures in AES encryption
...
This undoes most of the changes made in 37233553a4
as the problem with the drops was only mitigated.
The actual fix for the dropped packets was in e989f475a1
and the invalid initialization was the root cause
2019-04-12 00:23:20 +02:00
emanuele-f
e3951631b9
Improve benchmark
...
Sample on i3 2GHz:
Run [transop_null] for 3s (512 bytes): 11203585 packets 3734.5 Kpps 1912.1 MB/s
Run [transop_twofish] for 3s (512 bytes): 60705 packets 20.2 Kpps 10.4 MB/s
Run [transop_aes] for 3s (512 bytes): 467937 packets 156.0 Kpps 79.9 MB/s
2019-04-11 00:46:34 +02:00
emanuele-f
d4205d36fd
Additional fix for missing SO_REUSEPORT
...
edge_utils already fixed in 77392f8e53
2019-04-10 14:59:01 +02:00
emanuele-f
e989f475a1
Fix invalid initializations
2019-03-28 00:20:16 +01:00
emanuele-f
f5b2d00b06
Show multicast group join error code
2019-03-27 21:42:40 +01:00
emanuele-f
03761fc84c
Handle WSAECONNRESET to avoid stopping the supernode on Windows
2019-03-27 01:13:58 +01:00
emanuele-f
03dbedd52b
Change supernode registration messages log to info
2019-03-26 22:24:28 +01:00
emanuele-f
c71f629d1b
Fix encryption key being zeroed by AES initialization
2019-03-26 21:56:02 +01:00
emanuele-f
9e2aa47bf0
Add Centos packaging instructions
2019-03-03 04:35:04 +01:00
emanuele-f
7e5fd863a8
Improve Windows compilation instructions
2019-03-03 04:15:38 +01:00
emanuele-f
327a847681
Version fix
2019-03-01 20:38:33 +01:00
emanuele-f
77392f8e53
Add check for SO_REUSEPORT
...
Fixes #51
2019-03-01 20:34:44 +01:00
emanuele-f
5742ef978f
Add Windows compilation instructions
2019-03-01 20:16:24 +01:00
Emanuele Faranda
d7b3b2c06b
Merge pull request #66 from csheely/windows-cmake-build
...
Submit minor changes to enable Windows CMake builds w/o requiring additional local mods.
2019-03-01 18:57:20 +00:00
Emanuele Faranda
585ed22a5d
Merge pull request #67 from emanuele-f/fix_aes_multiedge
...
Fixes packet drops while communicating with multiple nodes in AES PSK
2019-03-01 18:53:47 +00:00
Emanuele Faranda
c4b96bea42
Merge pull request #71 from emanuele-f/udp_timeout
...
Reduce the registration timeout to keep the connection open
2019-03-01 16:07:02 +00:00
emanuele-f
5f4dfdc683
Reduce the registration timeout to keep the connection open
2019-02-25 23:42:46 +01:00
emanuele-f
37233553a4
Fixes packet drops while communicating with multiple nodes in AES PSK
...
Per-node AES structures must be kept as CBC cannot work with a single structure across multiple nodes
2019-02-20 01:26:18 +01:00
Chris Sheely
ba0ecabbf6
Submit minor changes to enable Windows CMake builds w/o further mods.
2019-02-11 16:49:37 -05:00
emanuele-f
5feb00bcf8
Create gitignore
2019-02-11 11:27:43 +01:00
Luca
dcf96a0809
Added #ifdef's for AES
2019-01-28 21:56:38 +01:00
Luca Deri
d275965e00
Merge pull request #60 from emanuele-f/enable_aes
...
Add AES CBC psk encryption
2019-01-28 21:52:04 +01:00
emanuele-f
200cfd24a3
Fix benchmark AES lib
2019-01-28 01:44:47 +01:00
emanuele-f
5d7db5f332
Add transopts benchmarks
2019-01-28 01:05:48 +01:00
emanuele-f
e4601590aa
Add -A option to enable AES CBC psk encryption
2019-01-28 00:27:54 +01:00
Luca Deri
63e74ccc6a
Added support for ARM64 platforms
2019-01-26 09:33:24 +01:00