Commit Graph
20 Commits
Author SHA1 Message Date
evgeny df2f6ff300 feat(nat): confirm direct open profile from accepted public connections 2026-10-18 00:41:53 +02:00
evgeny 6ad3674904 fix(nat): continue helper traversal after partial mapping results 2026-10-17 23:37:10 +02:00
evgeny 95f209d098 nat: determine TCP translation from one public IP observation 2026-10-17 19:45:29 +02:00
evgeny 417b848b50 nat: publish observed working addresses with tentative STUN profiles 2026-10-17 18:45:20 +02:00
evgeny aede36388f docs: define EIM? as matching mapping with unknown inbound access 2026-10-17 18:27:16 +02:00
evgeny 37461bb938 nat: finish observer-only rounds and document unknown-type candidates 2026-10-17 17:50:28 +02:00
evgeny b96ae1a718 docs: introduce NAT detector results and basic usage 2026-10-17 17:18:07 +02:00
evgeny 6a2164717e docs: describe NAT detector state and public API arguments 2026-10-17 17:12:40 +02:00
evgeny 308eb07742 docs: align endpoint and STUN contracts with the implemented detector 2026-10-17 16:32:08 +02:00
evgeny 26ab3b13b4 nat: separate routed mapping reports from unsolicited UDP ingress 2026-10-17 15:43:38 +02:00
evgeny 952fbe68e2 Schedule bounded endpoint rechecks after compatible UDP failure 2026-10-12 20:25:20 +02:00
evgeny 2354e94347 Expose pending NAT candidate cycles in local diagnostic status 2026-10-12 20:17:44 +02:00
evgeny 8906e29102 Keep background PONG replies from contaminating cold ingress checks 2026-10-12 19:01:13 +02:00
evgeny 585834ffbe Isolate helper traffic from the measured working sockets 2026-10-12 18:47:54 +02:00
evgeny 77ca1ec3dd Select NAT candidates across groups and route authenticated control 2026-10-12 17:50:45 +02:00
evgeny 01b0992c39 Select interface STUN fallback only when ETCP lacks independent observers 2026-10-12 00:57:54 +02:00
evgeny ff69552a61 Measure owned endpoint mapping and inbound reachability separately 2026-10-12 00:01:40 +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