881 Commits

Author SHA1 Message Date
sijie.sun ba1795a113 introduce a link-state route algo 2024-03-21 22:38:35 +08:00
sijie.sun d70d085553 do some refactor
1. Route must impl PeerPacketFilter trait.
2. Use postcard lib to serial msg instead of bincode.
3. Fix cycle ref in peer_mgr & peer_rpc
2024-03-21 22:38:35 +08:00
Sijie.Sun ecb385a82c optimize packet def (#31) 2024-03-13 22:43:52 +08:00
Sijie.Sun b0494687b5 simplify packet definition (#30) 2024-03-13 18:09:48 +08:00
Sijie.Sun 0053666dfb use uint32 as peer id (#29) 2024-03-13 00:15:22 +08:00
Sijie.Sun cb0df51319 fix ip & route cfg on windows (#28) 2024-03-09 00:24:16 +08:00
Sijie.Sun 5f30747f62 fix peer_remove & peer_add event handler (#27) 2024-03-06 23:52:56 +08:00
Sijie.Sun 278a4846f1 support ip broadcast (#26) 2024-03-06 23:09:15 +08:00
Sijie.Sun d8d1c64df7 Introduce foreigner network (#25)
* support network identity for instance

* introduce foreign network

foreign network allow a node serving as one public node. other nodes can
connect to this node to discover peers and exchange route info.
2024-03-06 20:59:17 +08:00
Sijie.Sun 9261d0d32d optimize bandwidth usage (#24)
1. stable stun test result
2. stable report peers result
3. do not send same packet to rip peer
2024-03-02 22:29:31 +08:00
Sijie.Sun 7918031d8b add version to rip route, reduce bandwidth (#23)
reduce bandwidth usage on route propagation
2024-03-02 18:54:45 +08:00
Sijie.Sun c6c505f9d7 support udp proxy gateway (#22) 2024-03-01 21:37:45 +08:00
Sijie.Sun 24178bcf6e use peer center instance to gatter peers info (#21)
* use peer center instance to gatter peers info
2024-02-29 00:04:48 +08:00
Sijie.Sun 31af413b03 fix local time not work in musl (#20) 2024-02-27 21:47:08 +08:00
Sijie.Sun e5b3fb09e6 fix peer rpc send response error (#19) 2024-02-26 21:04:33 +08:00
Sijie.Sun 756d498b90 Stun fix (#18)
* make easytier-core a lib
* add stun command to easytier cli
* fix stun test for musl
2024-02-08 23:44:51 +08:00
Sijie.Sun 7fc4aecdb9 Fix udp and win route (#16)
* robust udp tunnel
* fix windows route add
* use pnet to get index
* windows disable udp reset
2024-02-08 16:27:18 +08:00
Sijie.Sun 2c2e41be24 refactor route so we can add other router (#15) 2024-02-06 20:17:08 +08:00
Sijie.Sun 4f98dd097c Update rust.yml (#14)
compile for aarch64
2024-02-06 16:19:42 +08:00
Sijie.Sun 7f8935a9d5 introduce peer center (#13)
peer_center is used to collect peer info into one peer node.

the center node is selected with the following rules:

1. has smallest peer id
2. TODO: has allow_to_be_center peer feature

peer center is not guaranteed to be stable and can be changed when peer enter
or leave.  it's used to reduce the cost to exchange infos between peers.
2024-02-06 13:29:12 +08:00
Sijie.Sun e3f2765fed Update rust.yml (#12)
upload release files to aliyun oss
2024-02-03 01:43:33 +08:00
Sijie.Sun 6f8ca8bbb2 Update cargo config (#11)
static link to crt on windows
2024-02-03 00:20:05 +08:00
Sijie.Sun aeb00fb42f optimize latency window stats (#10) 2024-02-01 18:32:06 +08:00
Sijie.Sun 95a52a4b5c bind socket to device on macos (#9)
bind socket to device on macos
2024-01-31 21:43:23 +08:00
Sijie.Sun a0e59f5c56 Update rust.yml (#8)
fix artifacts upload.
2024-01-31 10:53:11 +08:00
Sijie.Sun f92ff73a3c Update rust.yml (#7)
* Update rust.yml

support multi platform build
2024-01-31 08:24:29 +08:00
Sijie.Sun d4b0f49443 optimize cli output (#6) 2024-01-30 22:05:58 +08:00
Sijie.Sun 003520f2b4 fix elastic pingpong (#5)
fix elastic pingpong not started after peer conn established
2024-01-30 12:58:15 +08:00
Sijie.Sun 118954c745 elastic ping pong to adapt env with packet loss (#4)
* elastic ping pong to adapt env with packet loss
2024-01-29 23:21:13 +08:00
Sijie.Sun 6271f9a7a7 GitHub actions (#3)
support github actions
2024-01-28 15:56:42 +08:00
sijie.sun 9779923b87 Initial Version 2024-01-27 15:12:30 +08:00