evgeny
a3f004772a
Align ETCP fixtures with NCD identity and failed-open contracts
2026-10-24 20:20:09 +02:00
evgeny
d5d103148f
Test ownership handoff while cancelling an incoming TCP path
2026-10-23 22:52:40 +02:00
evgeny
274554f7a5
Cover TCP creation cancellation and self-unsubscription on both roles
2026-10-23 22:42:20 +02:00
evgeny
a43d478495
Cover close from connection INIT and UP callbacks on both roles
2026-10-23 22:02:44 +02:00
evgeny
03d69cb772
Verify TCP retry timing, recovery and cancellation end to end
2026-10-23 21:58:27 +02:00
evgeny
f5e4c78b8c
Exercise repeated close during the server link teardown event
2026-10-23 21:57:10 +02:00
evgeny
425e1a527b
Provide the peer snapshot for the incoming test owner
2026-10-23 21:56:35 +02:00
evgeny
f1e3c2c08a
Hold the incoming connection before exercising DOWN callbacks
2026-10-23 21:55:54 +02:00
evgeny
bd9f1bb0c9
Flush cancelled timers in teardown tests and clarify adapter close
2026-10-23 21:54:49 +02:00
evgeny
1fb52d3f5b
Report active resources when callback teardown is unbalanced
2026-10-23 21:54:15 +02:00
evgeny
4bfec7257f
Cover TCP callback teardown on both roles and guard link close reentry
2026-10-23 21:40:43 +02:00
evgeny
3c44c3d7bc
Keep unknown BBR bandwidth from imposing a one-byte pacing stall
2026-10-23 02:32:36 +02:00
evgeny
8169322d56
Move direct transport tests to NCD ownership
2026-10-22 22:24:45 +02:00
evgeny
90d3206071
Confirm new TCP sessions and bound reciprocal challenge retries
...
Negotiate new TCP sessions even when the peer epoch is known, and let the retry timer send reciprocal challenges to avoid feedback loops when confirmations are lost.
Cover peer restarts, simultaneous connects, REALITY, confirmation loss, second links, stale confirmations and deadlines. Remove forced client resets and count only validated test payloads in the UDP reconnect test.
Validation: 149 tests passed; proxy, burst and load integration tests passed; Android assembleDebug succeeded.
2026-10-12 21:29:41 +02:00
evgeny
98529b3268
tests: allocate STCP traffic and link listener ports automatically
2026-10-10 15:32:47 +02:00
evgeny
26e6c05313
Apply fresh BGP addresses to shared NCD connections
2026-09-27 19:18:40 +03:00
evgeny
ec51b2d61f
Version signed node snapshots with persistent timestamps
2026-09-27 19:11:11 +03: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
a3783b5f55
fix: re-index conn_queue_entry after setting peer_node_id
...
tcp_server_on_link sets conn->peer_node_id after etcp_connection_create
which adds the entry with peer_node_id=0. instance_find_conn couldnt
find TCP connections until the queue entry was re-indexed.
2026-08-06 23:14:57 +03:00
evgeny
adac854c94
fix: TCP data flow — tx_state, keepalive, last_recv_local_time
...
- etcp_link_enter_ready_tcp: set tx_state=DATA_WAIT (was 0, blocking sends)
- etcp_conn_input: update last_recv_local_time on every packet (keepalive liveness)
- link_rx_cb: handle ETCP_KEEPALIVE before etcp_conn_input (conflicts with MEAS_RESP=0x08)
- KEEPALIVE handler: set recv_keepalive, remote_keepalive, link_status, keepalive_recv_count
- test_stcp_traffic: etcp_send instead of raw stcp_link_send
- test_etcp_stcp: rewrite for utun_instance + etcp_connect
2026-08-06 23:09:01 +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
2bbdf8195f
fix: TASSERT return value in test_etcp_stcp.c and test_stcp_link.c
2026-06-18 22:11:25 +03:00
Evgeny
150e9977df
stcp: unified transport — etcp_send/bind over TCP via stcp_link
...
- stcp_link.h/c: manage TCP connections through STCP protocol
stcp_server_listen, stcp_link_connect/send/close
rx dispatch goes directly through inst->api_bindings (single table)
- etcp_api.c: etcp_send checks conn->transport_link for TCP path
etcp_bind stores only in api_bindings (no duplication)
- etcp_connections.c: init_sockets creates stcp_server for TCP
init_connections creates stcp_link_connect for TCP clients
tcp_server_on_link creates minimal ETCP_CONN + fires callbacks
- etcp.h: ETCP_CONN.transport_link field (NULL for UDP, set for TCP)
- config_parser: CFG_SERVER.transport field, parsing transport=tcp|udp
- utun_instance.h: struct stcp_server*
- Tests: test_stcp_link (handshake, wrong key)
test_etcp_stcp (etcp_send/bind over TCP)
- Renamed: transport.h/c → stcp_link.h/c (cleaner, no bindings table)
- 46/46 tests pass
2026-06-16 01:19:58 +03:00