Commit Graph

253 Commits

Author SHA1 Message Date
Logan oos Even
39a71513f4
reworked supernode help text (#605) 2021-01-28 00:07:11 +05:45
Logan oos Even
3574865bf0
disabled SPECK defaulting to NEON support on ARM (#602) 2021-01-26 21:23:08 +05:45
Logan oos Even
c0c472b4aa
revised bootstrap (#599) 2021-01-25 16:54:38 +05:45
Logan oos Even
2e204adf1d
prepared auth scheme answer (#597) 2021-01-22 21:45:51 +05:45
Logan oos Even
a639e1d735
properly handled supernodes' timestamps (#591) 2021-01-18 00:12:45 +05:45
Logan oos Even
e4e6efacf0
enhanced header encryption to full 128 bit iv (#589) 2021-01-17 18:37:17 +05:45
Logan oos Even
773123f7a9
removed duplicate field for supernode socket from edge (#587) 2021-01-16 17:13:52 +05:45
Logan oos Even
7eeca3d78f
cleaned up mac type usage (#583) 2021-01-13 14:50:26 +05:45
Logan oos Even
9ee62d7415
rebased time stamp format: header encryption (#579)
* rebased time stamp format (header encryption)

* rearranged time stamp fields
2021-01-12 14:28:21 +05:45
fengdaolong
3a480a4a21
solved the problem that Windows cannot multicast (#576)
* Solve the problem that Windows cannot multicast.

* Better git judgment logic.
2021-01-12 14:26:40 +05:45
Logan oos Even
808920089d
switched to Pearson B. Hashing (#570)
* switched to Pearson B. Hashing

* switched to Pearson B. Hashing
2021-01-07 11:15:40 +01:00
Logan oos Even
9bbf7d95f6
hardware-accelerated header encryption (#565)
* hardware-accelerated header encryption

* hardware-accelerated header encryption

* hardware-accelerated header encryption
2021-01-07 11:14:44 +01:00
Francesco Carli
54f6da4cf4
Change space indention (#557)
* change space indention

* change space indention
2020-12-24 14:56:29 +01:00
Logan oos Even
71065278fa
readability code clean-up (#550)
* readability code clean-up

* readability code clean-up
2020-12-19 12:29:15 +01:00
Francesco Carli
de92fab878
readability code clean-up (#549) 2020-12-19 12:29:09 +01:00
Logan oos Even
ab4f507012
readability code clean-up (#548)
* readability code clean-up

* readability code clean-up
2020-12-19 12:29:03 +01:00
Francesco Carli
4e6d9a8f43
readability code clean-up (#547) 2020-12-19 12:28:57 +01:00
Francesco Carli
bd48a5c34d
readability code clean-up (#546) 2020-12-19 12:28:52 +01:00
Francesco Carli
646da54915
readability code clean-up (#545) 2020-12-19 12:28:45 +01:00
Francesco Carli
24b2f2762f
readability code clean-up (#544) 2020-12-19 12:28:39 +01:00
Francesco Carli
e71de330e5
readability code clean-up (#542) 2020-12-19 12:28:06 +01:00
Logan oos Even
df716c9da5
readability code clean-up, added 64-bit hash (#538) 2020-12-19 12:27:14 +01:00
Logan oos Even
599e424b5d
Revert "changed timer source (#522)" (#536)
This reverts commit 0298efa36e.
2020-12-19 12:26:54 +01:00
Logan oos Even
1c29fbee8a
readability code clean-up (#532) 2020-12-19 12:26:32 +01:00
Logan oos Even
d063cf3088
readability code clean-up (#531)
* readability code clean-up

* readability code clean-up
2020-12-19 12:26:21 +01:00
Logan oos Even
9fbe941511
readability code clean-up (#530) 2020-12-08 15:47:08 +01:00
Logan oos Even
3252231ecb
readability code clean-up (#529) 2020-12-08 15:46:57 +01:00
fengdaolong
cb7ee56876
Fix Windows MinGW compilation failure. (#526) 2020-12-08 15:46:20 +01:00
Logan oos Even
0298efa36e
changed timer source (#522)
* changed timer source

* changed timer source

* changed timer source

* changed timer source

* changed timer source

* changed timer source
2020-12-08 15:46:00 +01:00
joshuafc
e66f913e81
Deal with warnings at network_traffic_filter.c (#508)
* Add new file 'network_traffic_filter.c/.h"

* Add feature to drop or accept specific packet transmit over edge network interface by rules.

* fix CMakeLists.txt typo

* Update Rule String Format

* replace -F (filter) with -R (rule) for traffic restrictions.

* Update edge help (-h)  message. Update documents.

* Pass Build on CircleCI and local Windows 10 VS2019

* Fix cmake build failed because of sn_selection

* fix operate void* cause vs2016 build failed

* Fix typo to pass build on windows.

* add inttypes.h for n2n_typedefs.h to pass windows build

* modify headers to pass build on windows.

* Deal with warnings at `network_traffic_filter.c`

* network filter without type cast
2020-11-19 09:32:44 +01:00
Francesco Carli
3bd4635f04
Protection mechanism against duplicated MACs (#509)
* Prevent duplicated MACs

* Prevent duplicated MACs

* Fix compile errors

* Fix compile errors

* Implement auth scheme

* Fix compile errors

* Add auth_edge

* Add auth_edge

* Implement REGISTER_SUPER forwarding

* Add argument to update_edge

* Add auth field to supernode struct

* Add REGISTER_SUPER_NAK handling

* Fix issues

* Code clean-up

* Move auth token initialization
2020-11-19 09:31:24 +01:00
joshuafc
b3f564e58c
Traffic Restrictions, Pass Build on CircleCI and local Windows 10 VS2019 (#499)
* Add new file 'network_traffic_filter.c/.h"

* Add feature to drop or accept specific packet transmit over edge network interface by rules.

* fix CMakeLists.txt typo

* Update Rule String Format

* replace -F (filter) with -R (rule) for traffic restrictions.

* Update edge help (-h)  message. Update documents.

* Pass Build on CircleCI and local Windows 10 VS2019

* Fix cmake build failed because of sn_selection

* fix operate void* cause vs2016 build failed

* Fix typo to pass build on windows.

* add inttypes.h for n2n_typedefs.h to pass windows build

* modify headers to pass build on windows.
2020-11-16 21:27:42 +01:00
Francesco Carli
01f09e693e
Same chance to all supernodes to be transmitted by REGISTER_SUPER_ACK (#498)
* Same chance for all supernodes to be transmitted with REG_SUPER_ACK

* Update sn_utils.c

* Update random_numbers.h

* Update sn_utils.c

* Update random_numbers.c

* Update sn_utils.c

* Update sn_utils.c
2020-11-13 22:12:04 +01:00
Luca Deri
176e17dedf Moved typedef to n2n_typedefs.h from n2n_wire.h 2020-11-13 10:56:18 +01:00
Logan oos Even
1574f1e1c6
added payload struct to carry supernode data (#501)
* added payload struct to carry supernode data

* added payload struct to carry supernode data

* added payload struct to carry supernode data

Co-authored-by: Luca Deri <lucaderi@users.noreply.github.com>
2020-11-13 10:55:00 +01:00
lucaderi
72d5243650 Include rework to avoid circular dependencies, single place for typedefs and compilation on all platforms that don't like type redefinition 2020-11-13 09:28:52 +01:00
Francesco Carli
8915609f1a
Implement a load-based supernode selection strategy on edges (#493)
* Implement load-based selection strategy

* Update n2n_wire.h

* Update edge_utils.c

* Update n2n.c

* Update sn_utils.c

* Update edge_utils.c
2020-11-11 09:27:39 +01:00
Luca Deri
f0be328261 Disabled filtering code 2020-11-10 23:47:55 +01:00
lucaderi
0a0888f1f2 More fixes 2020-11-10 18:10:20 +01:00
Luca Deri
6bd375efc4 Compilation fixes
Network filtering code has been temporarely commented out as it is broken
2020-11-10 17:58:35 +01:00
joshuafc
a840aebb83
Add feature to drop or accept specific packet transmit over edge network interface by rules. (#489)
* Add new file 'network_traffic_filter.c/.h"

* Add feature to drop or accept specific packet transmit over edge network interface by rules.

* fix CMakeLists.txt typo

* Update Rule String Format

* replace -F (filter) with -R (rule) for traffic restrictions.

* Update edge help (-h)  message. Update documents.
2020-11-10 16:35:05 +01:00
Francesco Carli
e65fd984d7
Packet forwarding between supernodes (#486)
* Packet forwarding between supernodes

* Update wire.c
2020-11-10 16:34:49 +01:00
Francesco Carli
dcbc39c0fb
Update REGISTER_SUPER_ACK handling on edge (#478) 2020-10-27 17:02:35 +01:00
BetaBeauty
57f742fe42
Extra Device Description in P2P Connection and Register to Super Node (#475)
* add cmake export commands

* add extra edge description (hint) field

* add peer2peer description registry

* fixed bug: peer2peer not pass the dev_desc filed

* update -I option in the helper text

Co-authored-by: Longtao Wang <longtao.wang@cortexlabs.ai>
2020-10-26 21:13:56 +01:00
Francesco Carli
ed25ff8d01
Fixes minor issues introduced by #460 (#461) 2020-10-11 21:54:06 +02:00
Luca Deri
f6e4047ce0 Partial fixes for addressing compilation issues introduced by https://github.com/ntop/n2n/pull/460 2020-10-11 11:57:48 +02:00
Francesco Carli
c9eedd68f0
Initialize the federation of supernodes (#460)
* Add supernode2sock() and add_sn_to_federation_by_mac_or_sock()

* Update sn_utils.c

* Update sn.c and sn_utils.c

* Update REG_SUPER_ACK payload

* Update add_sn_to_federation_by_mac_or_sock()
2020-10-11 11:44:40 +02:00
Logan oos Even
64361dcec1
narrowed granularity of hardware feature support (#455)
Co-authored-by: Logan007 <you@example.com>
2020-10-10 15:09:28 +02:00
Francesco Carli
8dfffd9fbe
Implement purge-and-re-registration process for supernodes (#445) 2020-10-01 16:23:10 +02:00
francesco_carli
d9e2a0091a
Handle REGISTER_SUPER from other supernodes (#443)
* Handle REGISTER_SUPER from other supernodes

* Update wire.c
2020-09-29 10:50:09 +02:00
fcarli3
b2b76a450e How get federation name as parameter 2020-09-25 18:06:29 +02:00
francesco_carli
6e875e7cab
Add new federation flag to community structure 2020-09-24 20:04:07 +02:00
francesco_carli
746962510f
Add new enum data type and indicators 2020-09-24 20:00:32 +02:00
Logan007
df869bfd3b merged edge's subnet parameter into address parameter 2020-09-21 13:37:06 +05:45
Luca Deri
421968ac4e
Merge pull request #430 from VergLsm/dev
fix(win): "config.h: No such file or directory"
2020-09-20 18:31:43 +02:00
VergLsm
907e56a525
fix(win): "config.h: No such file or directory" 2020-09-21 00:14:28 +08:00
Logan007
2c77729acf removed jitter allowance for systemic packets 2020-09-19 15:47:16 +05:45
Logan007
90bf8da3f5 dropped OpenSSL 1.0 support 2020-09-14 20:46:53 +05:45
Luca Deri
1815790280
Merge pull request #414 from Logan007/comprFix
compression scheme name fix
2020-09-10 20:13:25 +02:00
Luca Deri
bf41b8b20e
Merge pull request #408 from Logan007/revPearson
added aes-ni support to Pearson hashing
2020-09-10 20:11:41 +02:00
Luca Deri
74605da4f0
Merge pull request #404 from Logan007/sseCor
compilation fix: correct (S)SSE version
2020-09-10 20:09:42 +02:00
Logan007
7a06bf39db made compression scheme name accessible even if not compiled 2020-09-10 14:08:08 +05:45
Logan007
6c982b9373 small cc20 sse speed-up 2020-09-09 14:09:19 +05:45
Logan007
fac5aa7d20 added aes-ni support to pearson hashing 2020-09-06 01:52:44 +05:45
Logan007
671a00aba7 fixed sse version 2020-09-02 17:41:37 +05:45
Luca Deri
43090bdcb4
Merge pull request #400 from Logan007/revCc20
reworked cc20
2020-09-02 12:34:15 +02:00
Logan007
885877cda3 added sse to built-in cc20 2020-09-02 16:08:30 +05:45
Logan007
f1f8ca6092 increased built-in cc20's speed 2020-09-02 02:16:30 +05:45
Logan oos Even
90a071a1d3
Merge branch 'dev' into revCc20 2020-09-01 20:16:32 +05:45
Logan007
8757312d41 reworked cc20 2020-09-01 20:09:29 +05:45
Logan007
399ecf8801 reworked cc20 2020-09-01 15:13:25 +05:45
Logan007
81a1ccc702 added aes-ni support 2020-09-01 02:09:31 +05:45
Logan oos Even
56071bf494
Merge branch 'dev' into amndmntAes 2020-08-31 02:36:01 +05:45
Logan007
c9412a290b made aes always available 2020-08-31 02:24:23 +05:45
Luca Deri
22d48a3db8
Merge pull request #396 from Logan007/revRnd
cosmetics on random numbers code
2020-08-30 20:57:59 +02:00
Luca Deri
3f2401c5ff
Merge pull request #395 from Logan007/amndmntTf
twofish transform code clean-up amendment
2020-08-30 20:57:50 +02:00
Logan007
58d0e906be cosmetics on random numbers code 2020-08-30 14:14:35 +05:45
Logan007
7b1ec1acb7 cosmetics on random numbers code 2020-08-30 03:19:27 +05:45
Logan007
1fcdd4e338 cosmetics on random numbers code 2020-08-30 03:15:14 +05:45
Logan007
8d7680408f cosmetics on random numbers code 2020-08-30 03:05:48 +05:45
Logan007
052144285a twofish transform code clean-up ammendment 2020-08-29 22:38:27 +05:45
Logan007
e8181c96f9 speck transform code clean-up 2020-08-29 20:53:37 +05:45
Luca Deri
31a05e18d1
Merge pull request #389 from Logan007/revTf
reworked twofish implementation and replaced it by a faster version
2020-08-28 13:01:19 +02:00
Luca Deri
25620fcbc7 Compilation fixes 2020-08-28 13:00:45 +02:00
Luca Deri
9038e7dbe6
Merge pull request #380 from Logan007/revAes
changed aes transform to cipher text stealing mode
2020-08-28 12:56:17 +02:00
Logan007
d5c1295bec replaced twofish implementation by a faster version 2020-08-26 18:07:05 +05:45
Logan007
b4f9caa00b changed aes transform to cipher text stealing mode 2020-08-25 23:15:32 +05:45
Logan007
680248d154 changed aes transform to cipher text stealing mode 2020-08-24 02:37:06 +05:45
Logan007
6d05d48878 changed aes transform to cipher text stealing mode 2020-08-23 20:02:19 +05:45
Luca Deri
9ef2ee6f52
Merge pull request #372 from Logan007/aIp
let auto ip feature handle several sub-networks
2020-08-23 14:13:05 +02:00
Luca Deri
319d88cfcc
Merge pull request #369 from fengdaolong/dev
Enhanced edge management console function
2020-08-23 14:12:38 +02:00
Logan007
a35675da4d internally renamed dhcp --> auto ip 2020-08-19 14:46:58 +05:45
Logan007
78409df1c8 let auto ip feature handle several sub-networks 2020-08-18 22:35:27 +05:45
Logan007
000ebef185 adopt compression field data type size 2020-08-17 22:37:29 +05:45
fengdaolong
6bdfdf6be4 Enhanced edge management console function.
1. Edge can view the IP address and socket information of the connected tap adapter through the management console (127.0.0.1:5644);
2. Repair two memory leaks;
3. Fix several code errors and redundant logic;
2020-08-16 22:34:41 +08:00
Luca Deri
8f9ccce9bf
Merge pull request #360 from Logan007/rpLzo
updated minilzo
2020-08-16 10:36:02 +02:00
Luca Deri
5354cd79d7
Merge pull request #359 from Logan007/pktFlds
split PACKET's transform field to give way for separate compression field
2020-08-16 10:35:44 +02:00
Logan007
e0266bfe5f updated minilzo 2020-08-15 23:26:21 +05:45
Logan007
9c10116d51 split PACKET's transform field to give way for seperate compression field 2020-08-15 22:48:57 +05:45
Logan007
ece0c91ef1 simplified twofish's key handling 2020-08-12 19:59:58 +05:45
Luca Deri
052127734e Merge compilation fix 2020-08-12 14:45:08 +02:00
Luca Deri
d4e9df013e
Merge branch 'dev' into prepReg 2020-08-12 14:41:09 +02:00
fengdaolong
92dfa67e22 Added DHCP function embedded in sn.
1. Automatically assign IP addresses to the edge through the DHCP function that comes with sn, the default IP address pool is 172.17.12.0/24.
2. The -d parameter is added to sn, and the IP address pool of the embedded DHCP can be customized.
3. Now edge does not need to add -a and -s parameters to automatically obtain the IP address.
4. The IP automatically obtained by the cross-community edge can be the same, because the communities are isolated from each other and do not interfere with each other.
5. On the management side of sn (127.0.0.1:5645), you can now view the IP address of the tutap adapter of each edge.
6. Fix many bugs that have a certain chance of causing memory leaks.
7. Note: This version is not fully compatible with the previous version.
2020-08-08 22:40:45 +08:00
Luca Deri
96c05490e9 ompilation fixes 2020-08-06 19:28:39 +02:00
Logan007
b5b18443af added regular expression checking 2020-08-04 18:49:12 +05:45
Logan007
9fba63dfb4 added per-community locking 2020-08-04 15:46:09 +05:45
Logan007
e4b33a2656 data structures 2020-08-04 15:18:58 +05:45
Luca Deri
5067d22587
Merge pull request #338 from switch-iot/feature_sn_uid_gid
add set uid/gid command option to supernode
2020-07-29 14:24:02 +02:00
switch_st
7285f2a1bc add set uid/gid command option to supernode 2020-07-29 18:30:32 +08:00
Logan007
3549936b48 moved some #DEFs to n2n_define.h 2020-07-29 15:32:04 +05:45
Logan007
75317acaf3 added sorting of encrypted communities 2020-07-28 00:55:07 +05:45
Luca Deri
e635926d2c
Merge branch 'dev' into rp 2020-07-27 06:57:36 +02:00
Luca Deri
1284e5662c
Merge pull request #325 from switch-iot/feature_sn_mgmt_port
add management port command option to supernode
2020-07-27 06:55:52 +02:00
Luca Deri
ceace349c6
Merge pull request #322 from switch-iot/fix_sn_purge_cmnt
Update purge logic of communities and edges for supernode
2020-07-27 06:54:53 +02:00
Logan oos Even
5ceb839b63
Merge branch 'dev' into rp 2020-07-25 18:54:33 +05:45
Logan007
0776e06912 added replay protection 2020-07-25 18:13:20 +05:45
switch_st
d59b977840 add management port command option to supernode 2020-07-24 11:23:12 +08:00
Logan007
b976379125 added data structures for replay protection 2020-07-23 20:34:54 +05:45
Logan007
895bbc2844 added time stamp blending and sending 2020-07-23 16:06:54 +05:45
switch_st
81516d8d8c Update purge logic of communities and edges for supernode 2020-07-22 15:49:45 +08:00
switch_st
72701a5e83 add main loop callback and move android arp code to this callback 2020-07-21 15:04:16 +08:00
Luca Deri
0ab9f3229e
Merge pull request #315 from switch-iot/hin2n_arp
delete android define and log code
2020-07-20 17:15:04 +02:00
Luca Deri
7d573823e7
Merge pull request #313 from fengdaolong/dev
Clean up redundant code in sn.c
2020-07-20 17:13:48 +02:00
switch_st
8a1bcf0fa6 close trace file if needed 2020-07-20 12:08:13 +08:00
switch_st
21122df969 delete android define and log code 2020-07-20 11:13:46 +08:00
fengdaolong
16b1c7c065 Clean up redundant code in sn.c
Clean up redundant code contained in both sn.c and sn_utils.c
2020-07-18 17:17:30 +08:00
ygg
e6c851d276 add sleep() for fix compile error on windows 2020-07-17 14:21:27 +08:00
switch_st
48db4bfb6c add extra comment to n2n_edge_callbacks 2020-07-07 11:03:13 +08:00
fengdaolong
51c889ddea Fix read tap device failed when OS wake up from sleep.
Adjust the structure of the source file to the header file.
2020-07-06 13:17:01 +08:00
switch_st
e7ac9cf129 change n2n_edge_callbacks payload_size parameter to pointer. 2020-07-03 11:50:47 +08:00
Luca Deri
edd4a8a863
Merge pull request #293 from Logan007/qlz
Removed quicklz define
2020-07-02 17:18:54 +02:00
Luca Deri
4a08411fe9
Merge pull request #292 from Logan007/pearsonUpdate
pearson hashing: added optional 16-bit look-up table
2020-07-02 17:18:34 +02:00
Luca Deri
edc48acb83
Merge pull request #290 from emanuele-f/protect_cleanup
Move android code to hin2n
2020-07-02 17:17:44 +02:00
Logan007
89542607e7 removed quicklz define 2020-07-02 17:50:05 +05:45
Logan007
8d0c52102c added optional 16-bit look-up table 2020-07-02 12:49:25 +05:45
emanuele-f
e42837c3fb Move android code to hin2n 2020-07-01 16:27:08 +02:00
fengdaolong
f5accc8221 Fix cmake compilation errors.
1. CMakeLists.txt added to automatically obtain the revised version number from the git repository.
2. Adjusted some header files to fix Windows platform compilation errors.
3. Eliminate some compilation warnings.
2020-07-01 18:35:22 +08:00
Luca Deri
cf65d9ad98
Merge pull request #282 from emanuele-f/n2n_callbacks
Add the callbacks API
2020-06-30 16:36:11 +02:00
Luca Deri
9dd0387d36
Merge pull request #279 from Logan007/checksum
Packet Checksum
2020-06-30 16:35:28 +02:00
emanuele-f
346631ffe8 Add the callbacks API
Callbacks allow n2n API users to extend n2n without modifying the upstream code. This also allows us
to move the hin2n code, which is specific of android, out of the n2n repository.
2020-06-30 13:01:37 +02:00
Logan007
0e0d662dbb added decryption step 2020-06-29 19:20:40 +05:45
Logan007
e8d5e939a7 added encryption step 2020-06-29 16:49:54 +05:45
Logan007
a6915fd6af prepared header iv encryption handling 2020-06-29 15:50:05 +05:45
Logan007
a64cfa450e added 16-bit hashing 2020-06-29 15:44:51 +05:45
Logan007
c7a8210078 added 96 bit block size for header iv encryption 2020-06-29 15:13:36 +05:45
emanuele-f
f5804db2b0 Android compilation fixes 2020-06-28 19:46:12 +02:00
emanuele-f
0b4d36f7bd Merge remote-tracking branch 'origin/dev' into hin2n_android 2020-06-28 17:52:21 +02:00
Luca Deri
9f4c0fca54
Merge pull request #272 from Logan007/fixN2nH
ifdef'ed openSSL-includes for use with AES present only
2020-06-24 08:59:40 +02:00
Logan007
62d811edf5 ifdef'ed openSSL-includes for use with AES present only 2020-06-23 00:47:54 +05:45
Logan007
789dd90272 Header Encryption 2020-06-23 00:34:19 +05:45