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