Commit Graph
1365 Commits
Author SHA1 Message Date
Evgeny 3a2b427287 etcpmon: widen debug level labels by 30% and shift radio buttons right 2026-06-02 22:16:37 +03:00
Evgeny 43baeb2306 etcpmon: fix autoradio button groups and add missing ETCPROUTE category 2026-06-02 22:13:18 +03:00
Evgeny 226a5744b5 etcpmon: Debug Levels block moved to right column, global radio labels removed, columns narrowed 2026-06-02 19:24:49 +03:00
Evgeny 1f4fe37fe5 proxy: rename + simplify + backpressure
- tcp_proxy/remote_proxy → tcp_proxy_client/tcp_proxy_server
- Все proxy файлы перенесены в src/proxy/
- Конфиг: [tcp_proxy]→[tcp_proxy_client], [remote_proxy]→[tcp_proxy_server]
- Убран subcmd CONNECTED (0x02) — клиент шлёт DATA сразу после CONNECT
- Backpressure: etcp_router_waiter_register/cancel через ll_queue threshold waiter
- Клиент: recv_cb send fail → tx_buf+waiter, не tcp_recved() (окно lwIP=0)
- Сервер: read_cb send fail → pause_buf+waiter, пауза read_id
- CLOSE/ERROR отправляется только после drain всех очередей
- Fail: conn не найден/closed → send ERROR вместо CLOSE/silent drop
- PROTOCOL.md: полная архитектура с диаграммами состояний и потоков
2026-06-02 18:02:37 +03:00
Evgeny f43631a532 etcpmon: исправить синтаксис — orphaned код перенесён внутрь функции etcpmon_client_add_to_history 2026-06-01 20:31:52 +03:00
Evgeny 4f0baa37db bbr: исправить передачу потерь в BBR + пол для cwnd на уровне BBR_CWND_MIN_TARGET*mss
- etcp.c: rs->lost из link->bbr_loss_since_ack (был хардкод 0), вызов bbr_note_loss при ретрансмите
- etcp_connections.h: поле bbr_loss_since_ack для per-link учёта потерь в байтах
- etcp_bbr.c: везде где BBR_CWND_MIN_TARGET — умножить на mss (юнит-мизматч пакеты/байты)
  - bbr_quantization_budget, bbr_set_cwnd, bbr_bound_cwnd_for_inflight_model, bbr_probe_rtt_cwnd
  - bbr_init_lower_bounds: инициализация inflight_hi из cwnd (был ~0U навсегда)
- control_server.c + etcpmon: экспорт BBR-метрик (bw_hi/lo, inflight_hi/lo, режим, потери)
- tests/bbr_integration: интеграционный тест BBR (15с, 50ms/5%loss/1Mbit) с таблицей метрик
- устранён death spiral BBR при высоких потерях: cwnd теперь не падает ниже 4*mss
2026-06-01 17:50:16 +03:00
Evgeny 5e834b519f mass_update: log all sessions to files, terminal output only for errors 2026-04-28 00:00:40 +03:00
Evgeny bbebc74bdb fix etcpmon keyboard: move Tab/Enter/Esc from WndProc to message loop pre-translate 2026-04-25 19:27:01 +03:00
Evgeny 973c00e544 add etcpmon keyboard navigation: Tab between Server/Port, Enter=Connect, Esc=Disconnect 2026-04-25 19:22:00 +03:00
Evgeny fb76b4252f fix etcpmon: stray brace in nat_type_to_string, add pipefail to build scripts 2026-04-25 19:14:28 +03:00
Evgeny 456d274e12 fix mass_update: remove git remote http->https rewrite (port 443 blocked on remotes) 2026-04-25 19:08:08 +03:00
Evgeny c391d497b4 fix mass_update: skip tests build, fix git http redirect, speed up deploy 2026-04-25 19:06:18 +03:00
Evgeny 4e040b2891 fix mass_update: add pipefail so make errors stop the update script 2026-04-25 18:54:07 +03:00
Evgeny 9c509d4c86 add connectivity probing + NAT type rename OPEN->EIM, RESTRICTED->STRICT
- Rename NAT types: OPEN->EIM, RESTRICTED->STRICT across all code
- Add flat addr list {type,ip,port,socket_id} to NODEINFO (NODEINFO_IPV4_ADDR)
- Add NODEINFO_IPV4_SOCKET_META for per-socket metadata
- Add NODE_CONNECTIVITY with per-type probe status and min_rtt
- New module: route_connectivity.c/h (probing engine with socket fallback)
- STRICT verified addresses excluded from NODEINFO broadcast
- Trigger probing on new/updated BGP node, cancel on remove/withdraw
- Update NAT type names in etcpmon GUI
2026-04-25 18:41:45 +03:00
Evgeny bd749c1484 GUI: Widen sockets list 1.5x, shrink action field, move Send below 2026-04-23 22:11:02 +03:00
Evgeny 0c748501c8 GUI: Add NAT address to socket display in etcpmon 2026-04-23 22:02:42 +03:00
Charlie Root d3d95c3c19 1 2026-04-22 23:15:41 +00:00
Evgeny 57dba26e7c GUI: поле действия и кнопка Send для отправки команд в utun
- Добавлен ETCPMON_CMD_ACTION в протокол (32 байта текст)
- В GUI добавлено поле ввода и кнопка Send правее блока Sockets
- Добавлен etcpmon_client_send_action для отправки команд
- Обработка action 'nat' в control_server: запускает NAT check для всех линков
- Сделана route_bgp_start_link_nat_check не-static
- Добавлена route_bgp_request_nat_check_all
- Исправлен баг route_ping.c (request_id -> nonce)
- Исправлена линковка tests/Makefile.am
2026-04-22 20:52:30 +03:00
Evgeny b0faf7d372 mass_update: по умолчанию запускает fast без аргументов 2026-04-22 18:29:31 +03:00
Evgeny 2e3eb0976a Add RX/TX dup counters to ETCP monitor GUI
- Add IDC_EDIT_ETCP_RX_DUP and IDC_EDIT_ETCP_TX_DUP controls
- Insert RX Dup / TX Dup fields after Retrans in ETCP Metrics group
- Update tooltips, metrics display and clear functions
2026-04-22 16:28:33 +03:00
Evgeny 385aa066b2 Add duplicate packet counter to ACK frames
- Add rx_dup_count (local) and tx_dup_count (remote via ACK) to ETCP_CONN
- Extend ACK section format: add 16-bit rx_dup_count after last_delivered_id
- Reconstruct 32-bit tx_dup_count from received 16-bit diff
- Update etcpmon protocol and control_server to expose counters
- Update packet dumper for new ACK format
2026-04-22 16:04:11 +03:00
Evgeny 9be03ece76 Update: mass_update.py - config in script dir, per-server SSH keys 2026-04-22 14:37:10 +03:00
Evgeny 7a46817799 Fix: read PID from pidfile instead of using shell $! 2026-04-22 13:16:26 +03:00
Evgeny c72d2afbef 1 2026-04-22 12:37:02 +03:00
Evgeny a44d9c10a1 1 2026-04-22 12:35:51 +03:00
Evgeny 1c501f9690 Add remote update scripts for mass deployment
- utun_update.sh: Shell script for updating single instance
  * fast mode: git pull + make clean + make
  * full mode: complete rebuild with autotools
  * Auto-detects project root from script location
  * Handles PID-based process stop/start
  * Supports Linux and BSD (nproc/sysctl)
  * Returns proper exit codes (0-4)

- mass_update.py: Python script for parallel SSH updates
  * Parallel execution via ThreadPoolExecutor
  * Configurable via JSON (~/.utun_servers.json)
  * Supports custom port/user per server
  * Timeout and error handling
  * Summary output per server

Tools for remote mass deployment of uTun updates via SSH.
2026-04-22 12:24:48 +03:00
Evgeny cbde38d52a Remove accidentally committed binaries and temp files 2026-04-22 11:45:54 +03:00
Evgeny 77fd7c19de WIP: debug byte order diagnostics 2026-04-22 02:14:47 +03:00
Evgeny 16a2aa959d etcpmon: translate tooltips to English 2026-04-21 20:47:09 +03:00
Evgeny 6127409c04 etcpmon: add tooltips for all metrics fields with variable names and descriptions 2026-04-21 20:21:08 +03:00
Evgeny cee9a04348 GUI: add active timeouts and busy memory blocks counters
- Add timeout_heap_get_size() to get active timer count
- Add global counters in memory_pool: g_total_free and g_total_allocated
- Simplify busy memory calculation to single formula:
  busy = memory_pool_get_total_allocated() - memory_pool_get_total_free_blocks()
- Add new IDC_EDIT_ACTIVE_TIMEOUTS and IDC_EDIT_BUSY_MEMORY to GUI
2026-04-21 17:22:58 +03:00
jeka b2ed0317a6 ping refactor 2026-04-18 22:26:54 +03:00
jeka c0c366bd83 mon fix 2026-04-14 23:40:14 +03:00
Evgeny 27874ffa22 1 2026-04-14 22:14:35 +03:00
Evgeny c93b84529e 1 2026-04-14 21:55:47 +03:00
Evgeny ad35bbab15 add sockets to gui 2026-04-14 21:50:32 +03:00
Evgeny 62a059abdb add sockets to gui 2026-04-14 21:17:46 +03:00
jeka cec2ffe2eb 1 2026-04-09 14:29:21 +03:00
jeka 04d3a0e52e add inflight to gui 2026-04-09 12:51:55 +03:00
jeka 7f0f28fd58 1 2026-04-06 18:09:40 +03:00
Evgeny 2d9fbd9911 1 2026-03-30 22:50:54 +03:00
Evgeny 14a9fffa87 1 2026-03-25 18:47:51 +03:00
Evgeny 4903ac9e64 spam 2026-03-25 18:47:29 +03:00
jeka 26cfa3209a add per-link inflight 2026-03-22 20:08:16 +03:00
jeka ca1e522a38 1 2026-03-19 22:24:16 +03:00
jeka 45e59994da 1 2026-03-14 16:44:34 +03:00
jeka 97fa002de3 1 2026-03-14 05:57:42 +03:00
jeka 92a797ab66 monitor to new protocol 2026-03-14 05:46:20 +03:00
jeka 8880db0ca2 1 2026-03-08 16:52:24 +03:00
jeka d77e725cbe 1 2026-03-08 00:47:02 +03:00