16 Commits

Author SHA1 Message Date
Datong Sun
e86c5c5c50
fix(fake-tcp): when connect()-ing, attempt to get ephemeral port using algorithm similar to Linux (#162)
* fix(fake-tcp): when `connect()`-ing, attempt to get ephemeral port 5 times to reduce the chance
of panicking

Fixes #79
2024-11-20 22:57:11 +08:00
dependabot[bot]
310bb17516 chore(deps): update pnet requirement from 0.33 to 0.34
Updates the requirements on [pnet](https://github.com/libpnet/libpnet) to permit the latest version.
- [Release notes](https://github.com/libpnet/libpnet/releases)
- [Commits](https://github.com/libpnet/libpnet/compare/v0.33.0...v0.34.0)

---
updated-dependencies:
- dependency-name: pnet
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-19 00:07:50 +08:00
Paolo Barbolini
6af7757456
perf(fake-tcp) let the memory allocator zero initialize the BytesMut memory instead of resizing immediately after allocation
Co-authored-by: Datong Sun <dndx@idndx.com>
2022-08-18 19:00:09 -07:00
Datong Sun
85555f2a34 feat(*) IPv6 support 2022-04-16 18:43:55 +08:00
Datong Sun
581d80d08c perf(fake-tcp) use flume to avoid locking in receiver, improved single
connection performance by 300%
2022-04-10 21:07:12 +08:00
Datong Sun
95dfd8ab54 fix(fake-tcp) fix an issue where RST generated is not following
the proper RFC requirement.

Send ACK every 128MB in lieu of data packets.
2022-04-10 16:33:53 +08:00
Datong Sun
5d4e3bf8c0 docs(fake-tcp) added documentations for fake-tcp 2022-04-09 12:10:13 +08:00
Datong Sun
7db7164193 chore(*) use tokio-tun v0.5 instead of forked version. Bumped
`fake-tcp` to `v0.2.3`
2021-12-07 17:07:54 +08:00
Datong Sun
33e510e7ba fix(fake-tcp) remove unneeded State::Closed as it is not in a
reachable code path
2021-11-19 10:45:13 -08:00
Datong Sun
583cdbe300 perf(fake-tcp) reduce the number of clone() calls in hot path 2021-11-19 12:35:21 +08:00
Datong Sun
91988520e5 feat(*) add DNS name support for --remote argument in both Client and
Server
2021-11-19 12:30:47 +08: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
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
4a9e41b0b7 chore(*) refactor Phantun and fake-tcp to their own crates 2021-09-19 00:36:40 -07:00