101 Commits

Author SHA1 Message Date
Datong Sun
042f5af49f feat(phantun) add support for connecting to/from IPv6 based UDP endpoint 2021-10-31 00:09:02 +08:00
Datong Sun
f667f56747 chore(actions) always use the latest stable toolchain 2021-10-21 03:47:57 -07:00
Datong Sun
49665b906f chore(cargo) use Rust edition 2021 2021-10-21 03:41:42 -07:00
Datong Sun
e9cde27923 ci(dependabot) add Dependabot checks 2021-10-20 02:07:05 -07:00
Datong Sun
cf588db042 ci(release) add musl libc targets v0.2.1 2021-10-19 01:13:56 -07:00
Datong Sun
0e27822995 docs(readme) update WireGuard MTU calculation to take into account for
padding truncation
2021-10-16 10:55:01 -07:00
Datong Sun
eeca1d0108 docs(readme) bump latest release version to v0.2.1 2021-10-12 07:26:49 -07:00
Datong Sun
35541df7e2 chore(phantun) bump version to v0.2.1, bump fake-tcp dependency to v0.1.2 2021-10-09 09:33:16 -07:00
Datong Sun
3219cb9f38 chore(fake-tcp) bump version to 0.1.2 2021-10-09 09:31:55 -07:00
Datong Sun
41e86521b7 fix(fake-tcp) more robust checking for receiving end closing, avoids
panicking tasks from causing server to stop completely
2021-10-10 00:29:28 +08:00
Datong Sun
427fb7c19a fix(fake-tcp) use 64 as TTL value, fixes #11 2021-10-09 23:57:47 +08:00
Datong Sun
ef96a5161d chore(phantun) release v0.2.0 v0.2.0 2021-09-28 23:35:37 -07:00
Datong Sun
2b7588adfe docs(phantun) add -h option information 2021-09-28 23:31:07 -07:00
Datong Sun
6285efd0d7 feat(phantun) make Tun interface name and address configurable. Improved
documentations of Clap CLI help

Closes #8
2021-09-29 14:27:00 +08:00
Datong Sun
5a6ebf52ea fix(phantun) better UDP error handling
When UDP send fails, print a proper error message and close the
connection, instead of `panic`ing.
2021-09-28 00:53:52 +08:00
Datong Sun
e3e50f8a9e docs(readme) add more network topology explanation 2021-09-24 08:44:42 -07:00
Datong Sun
e97a2d1cad docs(readme) update latest release version 2021-09-22 22:23:00 -07:00
Datong Sun
4dc9f867ed chore(release) add more cross compilation targets v0.1.1 2021-09-22 22:17:05 -07:00
Datong Sun
a54d1b3759 chore(phantun): update fake-tcp used to 0.1.1 2021-09-22 22:04:15 -07:00
Datong Sun
8371256f0b perf(fake-tcp) use cached tuples per dispatcher task to avoid RwLock
contentions. Use multi queue Tun. Upgraded tokio to 1.12.0.

This makes the entire Phantun forward process completely lock contention free
2021-09-23 12:59:49 +08:00
Datong Sun
04b0e97c1d perf(fake-tcp) faster checksum calculation
Before:
```
test packet::benchmarks::bench_build_tcp_packet_128  ... bench:         207 ns/iter (+/- 25)
test packet::benchmarks::bench_build_tcp_packet_1460 ... bench:         670 ns/iter (+/- 14)
test packet::benchmarks::bench_build_tcp_packet_512  ... bench:         334 ns/iter (+/- 21)
```

After:
```
test packet::benchmarks::bench_build_tcp_packet_128  ... bench:         206 ns/iter (+/- 9)
test packet::benchmarks::bench_build_tcp_packet_1460 ... bench:         259 ns/iter (+/- 16)
test packet::benchmarks::bench_build_tcp_packet_512  ... bench:         212 ns/iter (+/- 11)
```
2021-09-20 23:12:53 +08:00
Datong Sun
212f9b6f9d docs(readme) add iptables config guide 2021-09-20 04:15:55 -07:00
Datong Sun
9b644166a5 docs(readme) fixed typo 2021-09-20 04:09:12 -07:00
Datong Sun
e0eb0f03cd docs(readme) changed section header to be shorter 2021-09-19 03:59:27 -07:00
Datong Sun
9418096fe3 docs(readme) fix styling 2021-09-19 03:58:35 -07:00
Datong Sun
f70c466399 docs(readme) fix WireGuard section header format 2021-09-19 03:53:47 -07:00
Datong Sun
fb66286db3 docs(images) update diagram to include more descriptions 2021-09-19 03:46:19 -07:00
Datong Sun
d4d941971f ci(release) add aarch64 target 2021-09-19 03:32:05 -07:00
Datong Sun
62df34983f docs(readme) add future plans 2021-09-19 03:09:16 -07:00
Datong Sun
d2b8bbeaa8 docs(readme) add better styling for MAX_OF_16 2021-09-19 03:02:37 -07:00
Datong Sun
10468b48ce docs(readme) add WireGuard MTU calculation steps 2021-09-19 02:59:50 -07:00
Datong Sun
3405dd38ed docs(license) add license files to repository root 2021-09-19 02:40:43 -07:00
Datong Sun
716b664970 chore(phantun) use fake-tcp from crates.io v0.1.0 2021-09-19 02:05:08 -07:00
Datong Sun
43996c3b51 ci(release) fix artifact name 2021-09-19 01:54:41 -07:00
Datong Sun
96c967a498 ci(actions) auto release artifacts 2021-09-19 16:46:39 +08:00
Datong Sun
e6bc75951b style(phantun) fixed name and author info 2021-09-19 01:43:59 -07:00
Datong Sun
c023b3079c ci(actions) run test and lint for all branches, not just main 2021-09-19 01:43:54 -07:00
Datong Sun
b846da6294 docs(readme) add naming information 2021-09-19 01:05:08 -07:00
Datong Sun
b639a783df docs(readme) add performance test numbers 2021-09-19 01:02:53 -07:00
Datong Sun
eb0cc2e2e8 docs(readme) add ToC 2021-09-19 00:40:43 -07:00
Datong Sun
4a9e41b0b7 chore(*) refactor Phantun and fake-tcp to their own crates 2021-09-19 00:36:40 -07:00
Datong Sun
86c6a3f801 perf(client) use different UDP sockets for individual UDP connections
for better load sharing between threads

This removes the bottleneck with a single listening UDP socket.
2021-09-18 12:53:33 -07:00
Datong Sun
ae52531288 perf(locks) use RwLocks in place of Mutex when possible 2021-09-17 11:36:18 -07:00
Datong Sun
5866cbe512 ci(github) add basic build and lint CI test 2021-09-17 00:02:36 -07:00
Datong Sun
819dccc0d8 style(*) fix clippy warnings 2021-09-17 00:02:34 -07:00
Datong Sun
44b7c0f55e fix(fake_tcp) fixed incorrect RST SEQ/ACK 2021-09-17 00:02:31 -07:00
Datong Sun
9251775856 fix(fake_tcp) reduce log verbosity for bad SYN packets 2021-09-17 00:02:29 -07:00
Datong Sun
ef9a2962df bugfix(fake_tcp) do not RST packets that already have RST on them 2021-09-17 00:02:26 -07:00
Datong Sun
e869255785 feat(server) add dead connection detection 2021-09-17 00:02:24 -07:00
Datong Sun
7c06c5b08b feat(phantom) better error handling 2021-09-17 00:02:21 -07:00