You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Evgeny
61fee27478
congestion: burst-based BW measurement + adaptive inflight (slow start/cong avoidance/loss response)
New features:
- get_time_us() in lib/u_async.c/h for µs-precision timing
- Burst measurement (ETCP_SECTION_MEAS_TS 0x07, MEAS_RESP 0x08, FILLER 0x09)
- 12 MTU packets sent at line rate, receiver measures inter-packet gaps
- Burst triggered when link saturated + min 500ms interval
- Result: measured BW -> bandwidth for shaper, burst_target_bdp for window cap
- 3-phase adaptive inflight in link_stats_timer_cb:
- Slow start: windows doubles each RTT, exits on loss/RTT spike/threshold
- Congestion avoidance: additive increase, proportional RTT shrink, multiplicative loss shrink
- Burst target cap: inflight_lim <= burst_target_bdp * 1.1
- Dynamic optimal_inflight = sum(link->inflight_lim_bytes), recalculated on change
- Adaptive win_timebase = rtt/2 (was hardcoded 10ms)
Fixes:
- dummynet.c: shaper formula fixed (80000 -> 80)
- dummynet.c: queue_data_put call fixed (3 args -> 2)
- etcp.c: SIZE ERROR format string (missing log_name argument)
- etcp_request_pkt: FILLER leaves room for PAYLOAD overhead
Tests:
- test_etcp_congestion.c: single-threaded, 5-phase BW/delay/loss test
- sender + receiver + dummynet in one uasync
- CSV metrics output every 100ms
- All 29 existing tests pass
|
5 months ago |
| .. |
|
Makefile.am
|
Add getmyip module for reliable local IP detection
|
5 months ago |
|
debug_config.c
|
1
|
6 months ago |
|
debug_config.h
|
Fix: Include platform_compat.h before winsock2.h in debug_config.h so tc_htonl/tc_htons macros are defined first
|
5 months ago |
|
getmyip.c
|
Replace buggy get_default_route_ip() with get_outgoing_local_ip() for reliable local IP detection
|
5 months ago |
|
getmyip.h
|
Fix getmyip.h Windows build: use winsock2.h instead of sys/socket.h
|
5 months ago |
|
ll_queue.c
|
…
|
|
|
ll_queue.h
|
1
|
6 months ago |
|
mem.c
|
Fix: use allocated_count from mem.c for busy memory calculation
|
5 months ago |
|
mem.h
|
Fix: use allocated_count from mem.c for busy memory calculation
|
5 months ago |
|
memory_pool.c
|
Fix: use allocated_count from mem.c for busy memory calculation
|
5 months ago |
|
memory_pool.h
|
Fix: use allocated_count from mem.c for busy memory calculation
|
5 months ago |
|
myip.c
|
Fix: Add bounds/mtu checks, underflow protection and null deref fix for ETCP robustness
|
5 months ago |
|
platform_compat.c
|
Replace buggy get_default_route_ip() with get_outgoing_local_ip() for reliable local IP detection
|
5 months ago |
|
platform_compat.h
|
Refactor: Replace custom tc_hton*/tc_ntoh* with standard htobe16/be16toh/htobe32/be32toh, move htobe16/be16toh to platform_compat.h
|
5 months ago |
|
serialize.c
|
serializer
|
6 months ago |
|
serialize.h
|
serializer
|
6 months ago |
|
sha256.c
|
…
|
|
|
sha256.h
|
…
|
|
|
socket_compat.c
|
1
|
6 months ago |
|
socket_compat.h
|
1
|
6 months ago |
|
swm_min.c
|
…
|
|
|
swm_min.h
|
…
|
|
|
timeout_heap.c
|
GUI: add active timeouts and busy memory blocks counters
|
5 months ago |
|
timeout_heap.h
|
GUI: add active timeouts and busy memory blocks counters
|
5 months ago |
|
u_async.c
|
congestion: burst-based BW measurement + adaptive inflight (slow start/cong avoidance/loss response)
|
5 months ago |
|
u_async.h
|
congestion: burst-based BW measurement + adaptive inflight (slow start/cong avoidance/loss response)
|
5 months ago |
|
wintun.dll
|
…
|
|
|
wintun.h
|
…
|
|