From: Libor Peltan Date: Thu, 4 Nov 2021 12:35:28 +0000 (+0100) Subject: xdp-tcp: simplify code X-Git-Tag: v3.3.dev~171^2~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3b2a76cc29960274e4d17d28d7605c9dbcd43df5;p=thirdparty%2Fknot-dns.git xdp-tcp: simplify code --- diff --git a/src/libknot/xdp/tcp.c b/src/libknot/xdp/tcp.c index 759d86ab57..fafb6b9d96 100644 --- a/src/libknot/xdp/tcp.c +++ b/src/libknot/xdp/tcp.c @@ -147,13 +147,6 @@ static void tcp_table_remove_conn(knot_tcp_conn_t **todel) *todel = (*todel)->next; // remove from conn-table linked list } -static void tcp_table_del_conn(knot_tcp_conn_t **todel) -{ - knot_tcp_conn_t *conn = *todel; - tcp_table_remove_conn(todel); - del_conn(conn); -} - static void tcp_table_remove(knot_tcp_conn_t **todel, knot_tcp_table_t *table) { assert(table->usage > 0); @@ -162,14 +155,6 @@ static void tcp_table_remove(knot_tcp_conn_t **todel, knot_tcp_table_t *table) table->usage--; } -static void tcp_table_del(knot_tcp_conn_t **todel, knot_tcp_table_t *table) -{ - assert(table->usage > 0); - table->inbufs_total -= (*todel)->inbuf.iov_len; - tcp_table_del_conn(todel); - table->usage--; -} - static void conn_init_from_msg(knot_tcp_conn_t *conn, knot_xdp_msg_t *msg) { memcpy(&conn->ip_rem, &msg->ip_from, sizeof(conn->ip_rem)); @@ -339,7 +324,8 @@ int knot_tcp_recv(knot_tcp_relay_t *relays, knot_xdp_msg_t *msgs, uint32_t count relay->action = XDP_TCP_ESTABLISH; break; case XDP_TCP_CLOSING2: - tcp_table_del(pconn, tcp_table); + tcp_table_remove(pconn, tcp_table); + del_conn(conn); relay->conn = NULL; break; } @@ -367,7 +353,8 @@ int knot_tcp_recv(knot_tcp_relay_t *relays, knot_xdp_msg_t *msgs, uint32_t count case KNOT_XDP_MSG_RST: if (conn != NULL && msg->seqno == conn->seqno) { relay->action = XDP_TCP_RESET; - tcp_table_del(pconn, tcp_table); + tcp_table_remove(pconn, tcp_table); + del_conn(conn); relay->conn = NULL; } else if (conn != NULL) { relay->auto_answer = KNOT_XDP_MSG_ACK; diff --git a/tests/libknot/test_xdp_tcp.c b/tests/libknot/test_xdp_tcp.c index 8fbab2df1a..98611290ea 100644 --- a/tests/libknot/test_xdp_tcp.c +++ b/tests/libknot/test_xdp_tcp.c @@ -64,7 +64,8 @@ static void tcp_cleanup(knot_tcp_table_t *tcp_table, uint32_t timeout, knot_tcp_conn_t *conn, *next; WALK_LIST_DELSAFE(conn, next, *tcp_table_timeout(tcp_table)) { if (i++ < at_least || now - conn->last_active >= timeout) { - tcp_table_del(tcp_table_re_lookup(conn, tcp_table), tcp_table); + tcp_table_remove(tcp_table_re_lookup(conn, tcp_table), tcp_table); + del_conn(conn); } } }