From: Daniel Salzman Date: Wed, 16 Mar 2022 11:09:54 +0000 (+0100) Subject: xdp-tcp: move send_prepare and send_finish out of knot_tcp_send() X-Git-Tag: v3.3.dev~171^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1119a4d586ccd36dfd7a71ee8a79583233b0a9a5;p=thirdparty%2Fknot-dns.git xdp-tcp: move send_prepare and send_finish out of knot_tcp_send() --- diff --git a/src/knot/server/xdp-handler.c b/src/knot/server/xdp-handler.c index 0c33ba20d4..339d8f95ad 100644 --- a/src/knot/server/xdp-handler.c +++ b/src/knot/server/xdp-handler.c @@ -288,6 +288,8 @@ void xdp_handle_sweep(xdp_handle_ctx_t *ctx) uint32_t prev_total; knot_tcp_relay_t sweep_relays[XDP_BATCHLEN]; do { + knot_xdp_send_prepare(ctx->sock); + prev_total = ctx->sweep_closed + ctx->sweep_reset; ret = knot_tcp_sweep(ctx->tcp_table, ctx->tcp_idle_close, ctx->tcp_idle_reset, @@ -312,6 +314,8 @@ void xdp_handle_sweep(xdp_handle_ctx_t *ctx) ret = knot_tcp_send(ctx->sock, sweep_relays, XDP_BATCHLEN, XDP_BATCHLEN); } knot_tcp_cleanup(ctx->syn_table, sweep_relays, XDP_BATCHLEN); + + (void)knot_xdp_send_finish(ctx->sock); } while (ret == KNOT_EOK && prev_total < ctx->sweep_closed + ctx->sweep_reset); struct timespec now = time_now(); diff --git a/src/libknot/xdp/tcp.c b/src/libknot/xdp/tcp.c index 255e7c602f..74586355dd 100644 --- a/src/libknot/xdp/tcp.c +++ b/src/libknot/xdp/tcp.c @@ -536,8 +536,6 @@ int knot_tcp_send(knot_xdp_socket_t *socket, knot_tcp_relay_t relays[], return KNOT_EINVAL; } - knot_xdp_send_prepare(socket); - knot_xdp_msg_t msgs[max_at_once], *first = first_msg(msgs, max_at_once), *msg = first; for (uint32_t i = 0; i < relay_count; i++) { @@ -609,7 +607,6 @@ int knot_tcp_send(knot_xdp_socket_t *socket, knot_tcp_relay_t relays[], } send_msgs(msgs, msg - first, socket); - (void)knot_xdp_send_finish(socket); return KNOT_EOK; }