Commit Graph

239 Commits

Author SHA1 Message Date
Logan oos Even
7f1fe9a499
allowed edge to optionally auto-detetct local IP address ('-e auto') for advertising as preferred (#776) 2021-09-12 00:22:05 +05:45
Logan oos Even
7fa0cc1e0a
added preferred socket handling (-e) (#765) 2021-09-09 14:07:29 +05:45
Logan oos Even
b6e865aac7
trimmed open_socket() down by one parameter (#768) 2021-09-06 17:03:15 +05:45
Logan oos Even
e13c9a01a5
rearranged thread-related code (#761) 2021-08-30 14:23:31 +05:45
Logan oos Even
c21accc2a1
enabled edge to bind to a specified IP address (-b) (#753) 2021-08-28 03:08:23 +05:45
Logan oos Even
e09f3a4875
added federation support to user/password auth scheme (#741) 2021-07-31 22:17:07 +05:45
skyformat99
6f63f401fe
updated for compilation with VS2015 (#739) 2021-07-26 12:53:05 +05:45
Logan oos Even
c35129b8e2
added 'reload_communities' command to supernode management port (#740) 2021-07-24 03:46:50 +05:45
Logan oos Even
84d0991977
fortified user/pw auth scheme (#731) 2021-07-21 02:52:38 +05:45
Logan oos Even
39aa50b4cd
added manual MAC/IP address spoofing protection override at supernode (-M) (#716) 2021-06-21 17:03:07 +05:45
Logan oos Even
1586ae62a7
made n2n react more swiftly to (D)DNS changes (#705) 2021-06-07 17:57:49 +05:45
Logan oos Even
3c6ab56d3f
allowed (temporarily) initially non-resolving supernode names (#701) 2021-06-05 17:54:32 +05:45
Logan oos Even
c55e3e3246
multithreaded supernode name resolution (#645) 2021-06-04 03:52:12 +05:45
Logan oos Even
a28327a0af
added user-password edge authentication (#673) 2021-06-04 03:11:22 +05:45
Logan oos Even
667b7df083
added memrnd() (#685) 2021-04-19 00:47:37 +05:45
randomize00
cfa92d28d8
add callback function for hin2n to protect socket (#684) 2021-04-14 11:31:50 +05:45
Sven Roederer
23c18e349f
drop non portable SOL_TCP / fix MacOS v2 (#680)
* Revert "Fix compilation on MacOS"

in order to another solution

* src: use IPPROTO_TCP in place of SOL_TCP

* use the more specific IPPROTO_TCP type for setsockopt
* fixes build on MacOS

src/edge_utils.c:891:31: error: use of undeclared identifier 'SOL_TCP'; did you mean 'FPP_TCP'?
        setsockopt(eee->sock, SOL_TCP, TCP_NODELAY, &value, sizeof(value));

src/edge_utils.c:894:31: error: use of undeclared identifier 'SOL_TCP'
        setsockopt(eee->sock, SOL_TCP, TCP_CORK, &value, sizeof(value));
                              ^
src/edge_utils.c:894:40: error: use of undeclared identifier 'TCP_CORK'
        setsockopt(eee->sock, SOL_TCP, TCP_CORK, &value, sizeof(value));

* include/n2n.h: drop redefiniton of SOL_TCP for WIN32, as we don't use it anywhere now

* src: only use TCP_CORK on LINUX

* it's LINUX only and fails on Win32 and MacOS (man 7 tcp)
2021-04-05 19:30:53 +02:00
Alfredo Cardigliano
53e930db10 Fix compilation on MacOS 2021-03-29 09:28:13 +02:00
Logan oos Even
7c3951a10f
revised tcp implementation (#674) 2021-03-26 20:45:31 +05:45
Logan oos Even
0287837241
skewed supernode selection for the benefit of current supernode in no-pong case (#663) 2021-03-16 23:24:39 +05:45
Logan oos Even
aa1f4311f9
adapted packet format (#662)
* adapted packet format
2021-03-16 17:24:59 +05:45
Logan oos Even
23a9c871f8
increased resilience to supernode failure (#660) 2021-03-09 04:46:42 +05:45
Logan oos Even
1bcc64ccb3
fixed unrelated error message (#653) 2021-03-04 16:17:48 +05:45
Logan oos Even
20133f599c
improved socket handling (#650) 2021-03-01 14:13:14 +05:45
Logan oos Even
c8fabbdfe0
added more targeted routing for packet forwarding in federation (#643) 2021-02-23 18:51:14 +05:45
Logan oos Even
a482fe112d
added TCP support (#627)
(disabled on Windows)
2021-02-22 22:37:47 +05:45
vtcpip
b42c111527
fix windows compile (#636) 2021-02-10 15:16:16 +05:45
Logan oos Even
cef5561c5a
switched to 2021 (#632) 2021-02-08 16:11:06 +05:45
Logan oos Even
aaca1424fd
added AVX-512 support to SPECK cipher (#630) 2021-02-08 15:27:29 +05:45
Logan oos Even
fb827a843b
reworked edge management port output (#623) 2021-02-06 18:24:08 +05:45
Logan oos Even
b3a4eac4d7
enabled windows random numbers for seed (#622) 2021-02-02 18:43:30 +05:45
Logan oos Even
09e8d5e730
limited number of concurrently pinged supernodes (#619) 2021-02-01 18:31:36 +05:45
Logan oos Even
ba9a32fb30
fixed minor timing issues (#616) 2021-01-31 21:12:08 +05:45
Logan oos Even
de76b16fd5
added missing 'metric' 2021-01-31 20:03:11 +05:45
anzz1
9cac336488
added network interface metric option for windows (#606) 2021-01-30 18:00:01 +05:45
Logan oos Even
c696f59e07
ensured correct community file loading (sn) (#609) 2021-01-29 14:52:11 +05:45
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