From 17c92e17450208ea47e115c591d35450f3c4e12d Mon Sep 17 00:00:00 2001 From: evgeny Date: Thu, 22 Oct 2026 22:39:43 +0200 Subject: [PATCH] Diagnose adopted transports and isolate traffic test commands --- src/transport_layer/node_conn_direct.c | 2 ++ tests/test_stcp_traffic.c | 10 ++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/transport_layer/node_conn_direct.c b/src/transport_layer/node_conn_direct.c index e2780c55..aeac72fd 100644 --- a/src/transport_layer/node_conn_direct.c +++ b/src/transport_layer/node_conn_direct.c @@ -832,6 +832,8 @@ int node_conn_direct_open(struct UTUN_INSTANCE* inst, uint64_t node_id, if (!entry) { DEBUG_ERROR(DEBUG_CATEGORY_NCD, "[ncd] alloc entry failed node=0x%016llx", (unsigned long long)node_id); return NCD_ERR; } entry->node_id = node_id; entry->conn = conn; entry->ua = inst->ua; entry->up = (uint8_t)(conn->links_up ? 1 : 0); + DEBUG_DEBUG(DEBUG_CATEGORY_NCD, "[ncd] adopt conn=%p node=%016llx state=%d links_up=%u initialized=%u tx=%u", + (void*)conn, (unsigned long long)node_id, conn->state, conn->links_up, conn->initialized, conn->tx_state); if (ncd_registry_add(inst, entry) < 0) { u_free(entry); return NCD_ERR; } struct NODE_CONN_DIRECT* h = u_calloc(1, sizeof(*h)); diff --git a/tests/test_stcp_traffic.c b/tests/test_stcp_traffic.c index 44b67782..213434d5 100644 --- a/tests/test_stcp_traffic.c +++ b/tests/test_stcp_traffic.c @@ -20,6 +20,8 @@ #define TRAFFIC_MB (1024*1024) #define PKT_MIN 10 #define PKT_MAX 1800 +#define CLIENT_CMD 253 +#define SERVER_CMD 254 static int test_failed = 0; @@ -47,7 +49,7 @@ static void receive_packet(struct ETCP_CONN* conn, struct ll_entry* entry) { int valid = entry->dgram && entry->len >= 5; if (valid) { for (unsigned i = 0; i < 4; i++) seq |= (unsigned)entry->dgram[i + 1] << (8 * i); - valid = entry->dgram[0] == side && seq == (unsigned)rx->pkts; + valid = entry->dgram[0] == (side == 1 ? CLIENT_CMD : SERVER_CMD) && seq == (unsigned)rx->pkts; for (unsigned i = 5; valid && i < entry->len; i++) valid = entry->dgram[i] == (uint8_t)(i * 7 + seq * 13 + side); } @@ -71,7 +73,7 @@ static void connect_cb(struct NODE_CONN_DIRECT* h, enum ncd_event event, void* a } static size_t gen_packet(uint8_t *buf, int side, int seq, size_t paylen) { - buf[0] = (uint8_t)side; + buf[0] = side == 1 ? CLIENT_CMD : SERVER_CMD; buf[1] = (uint8_t)(seq >> 0); buf[2] = (uint8_t)(seq >> 8); buf[3] = (uint8_t)(seq >> 16); @@ -149,8 +151,8 @@ int main(void) { memset(&srv_rx, 0, sizeof(srv_rx)); srv_rx.expected_total = TRAFFIC_MB; memset(&cli_rx, 0, sizeof(cli_rx)); cli_rx.expected_total = TRAFFIC_MB; - TASSERT(etcp_bind(srv_inst, 1, receive_packet) >= 0); - TASSERT(etcp_bind(cli_inst, 2, receive_packet) >= 0); + TASSERT(etcp_bind(srv_inst, CLIENT_CMD, receive_packet) >= 0); + TASSERT(etcp_bind(cli_inst, SERVER_CMD, receive_packet) >= 0); struct TOPO_GROUP_NODE *srv_node = topo_groups_get_default(srv_inst->topo_groups) ? topo_groups_get_default(srv_inst->topo_groups)->local_node : NULL; TASSERT(srv_node);