evgeny
68a225baec
Exercise RTT changes through real ETCP and document RTO inputs
2026-10-24 17:26:59 +02:00
evgeny
dbda8a24d7
Verify RTT hold rounds and document filter timing
2026-10-24 17:26:59 +02:00
evgeny
bb462bad69
Preserve BBR RTT filter age and full-width probe deadlines
2026-10-24 17:26:59 +02:00
evgeny
72f48d1f14
Keep DATA pacing units consistent and test startup delay exit
2026-10-23 10:59:30 +02:00
evgeny
3c44c3d7bc
Keep unknown BBR bandwidth from imposing a one-byte pacing stall
2026-10-23 02:32:36 +02:00
evgeny
b39a861a57
Initialize STARTUP pacing from the actual initial DATA window
2026-10-23 02:24:10 +02:00
evgeny
34e3d9bba0
Verify queue budget saturation and the BBR fast path contract
2026-10-23 01:02:15 +02:00
evgeny
4035794631
Define and test the BBR steady-state queue time budget
2026-10-23 01:00:36 +02:00
evgeny
aefa8ff680
Check BBR loss bounds against the minimum DATA window
2026-10-23 00:43:31 +02:00
evgeny
92a535e009
Cover BBR probe drain and transport DATA window consistency
2026-10-23 00:42:02 +02:00
evgeny
716db3a820
Saturate BBR byte windows instead of wrapping at large BDP
2026-10-23 00:24:35 +02:00
evgeny
229e992695
Cover probing byte budgets and ACK aggregation beyond 64KiB
2026-10-23 00:16:40 +02:00
evgeny
6b1298aa62
Reproduce byte-sized instead of MSS-sized BBR probing growth
2026-10-23 00:15:28 +02:00
evgeny
dd153264e1
Verify byte-rate scaling at multiple MTUs and multi-gigabit rates
2026-10-23 00:00:40 +02:00
evgeny
6fec5d6d98
Reproduce MSS-dependent BBR pacing and BDP with a dimensional regression
2026-10-22 23:59:20 +02:00
evgeny
38c9f229bc
stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test
...
- u_async.c: process immediate_queue BEFORE epoll_wait in uasync_poll
- stcp_link.c: defensive NULL etcp_conn/etcp_link in stcp_link_close
- utun_instance.c: move stcp_server_list_destroy_all to Phase J (before ETCP),
add deferred drain in both Phase J and L
- stcp.h/c: STCP_HS_ENC_CLIENT 6→38, STCP_HS_ENC_SERVER 7→39,
exchange ed25519_pubkey in both handshake directions
- etcp_connections.c: copy peer_ed25519 from STCP to ETCP_CONN in
etcp_link_enter_ready_tcp; guard link->etcp in tcp_link_close_cb
- chat_sync.c: fix lk->conn NULL dereference for TCP links
- test_stcp.c: update stcp_server_create/stcp_client_connect callsites
- tools/chat_tcp_test: change transport udp→tcp
2026-08-07 00:48:27 +03:00
evgeny
d773f1724a
refactor: STCP connections as ETCP links (is_tcp)
...
- Add is_tcp, tcp_link, tcp_reconnect_* fields to ETCP_LINK
- Remove transport_link from ETCP_CONN, add tcp_link_count
- stcp_link: replace embedded etcp_conn with pointer; add etcp_link backpointer
- stcp_link: link_rx_cb routes ETCP data to etcp_conn_input
- stcp_link: call on_close_cb in close
- New TCP functions: etcp_link_enter_ready_tcp, etcp_tcp_link_start_connect,
etcp_tcp_link_start_reconnect, tcp_link_close_cb, etcp_tcp_send
- etcp_link_new: handle NULL conn for TCP links; skip enter_init for TCP
- etcp_link_close: close stcp_link for TCP
- etcp_encrypt_send: redirect TCP to etcp_tcp_send (skips AES-CCM)
- tcp_server_on_link: create ETCP_LINK(is_tcp=1) + enter_ready_tcp
- etcp_connect: TCP addrs -> etcp_tcp_link_start_connect
- Remove ctx->tcp_link/tcp_ready
- test_stcp_traffic: find stcp_link via links->is_tcp instead of transport_link
- 66/68 tests pass; 2 STCP tests expected to fail (integration not complete)
2026-08-06 22:14:32 +03:00
Evgeny
fcf3fb7f51
refactor: move transport (etcp/stcp/normalizer) to transport_layer/, routing (bgp/pings/topo*) to routing_layer/
2026-07-21 20:25:41 +03:00
Evgeny
331d43c6f7
fix: proxy ERROR loop, BBR test backpressure, O(1) u_free, test ordering
...
- tcp_proxy: ERROR silently dropped (no ERROR->ERROR loop), Russian removed from logs
- etcp_bbr: swap min(lo) and max(4*mss) in bbr_bound_cwnd_for_inflight_model
- test_etcp_bbr: fix cwnd comparison (packets vs bytes)
- ll_queue: double-put detection (abort), Floyd cycle detection in consistency check
- ll_queue: QUEUE_DEBUG commented out (was always-on, O(N) per put)
- mem: u_free_impl now O(1) via doubly-linked list, double-free detection
- bbr_integration: queue_waiter_wait + call_soon backpressure (threshold=1)
- tests/Makefile.am: fast tests first, *.log cleanup before run
2026-06-03 02:06:09 +03:00
Evgeny
6c79939db3
congestion: заменить AIMD на BBR v3 (per-link), добавить юнит-тесты BBR
...
- Новые файлы: src/etcp_bbr.h/c — полный порт BBR v3 из BBR/bbr_v3.c (референс сохранён)
- struct ETCP_LINK: удалены AIMD-поля (rtt_history, rtt_swm, stat_win, stats_timer, inflight_phase...), добавлены bbr*, delivered_bytes, bbr_pacing_rate
- struct INFLIGHT_PACKET: +3 поля для rate_sample (delivered_at_send, inflight_at_send, is_app_limited)
- etcp_ack_recv: вызов bbr_main() с rate_sample, обновление inflight_lim_bytes и pacing
- etcp_request_pkt: заполнение BBR rate_sample полей при отправке
- Шейпер: bandwidth обновляется из bbr_pacing_rate
- Конфиг: inflight_min/max заменены на bbr_max_cwnd
- Дамп: BBR поля (mode, cycle, pacing, min_rtt_us, bw_hi/lo, inflight_hi/lo)
- Time injection: bbr->now_tb для детерминированных тестов
- tests/test_etcp_bbr.c: 8 юнит-тестов (init, startup, full_bw/drain, loss, cwnd cap, loss cut, fast_path, probe_rtt)
- Отключены test_etcp_congestion и test_etcp_reinit_inflight (старый congestion control)
- 40/40 тестов пройдено
2026-06-01 12:58:31 +03:00