]> git.ipfire.org Git - thirdparty/knot-dns.git/commitdiff
XDP-TCP: bugfix: dont impose limit on resets per second
authorLibor Peltan <libor.peltan@nic.cz>
Wed, 12 May 2021 05:47:54 +0000 (07:47 +0200)
committerDaniel Salzman <daniel.salzman@nic.cz>
Thu, 8 Jul 2021 14:04:00 +0000 (16:04 +0200)
src/knot/server/xdp-handler.c

index 9f68a456790f9dd1044da24bb1dfda772953a37b..5e4c343941bb16c215eeeae55b7064b3475e71e1 100644 (file)
@@ -221,7 +221,13 @@ int xdp_handle_send(xdp_handle_ctx_t *ctx, knot_xdp_socket_t *xdp_sock)
 
 int xdp_handle_timeout(xdp_handle_ctx_t *ctx, knot_xdp_socket_t *xdp_sock)
 {
-       return knot_xdp_tcp_timeout(ctx->tcp_table, xdp_sock, 20, 2000000, 4000000, overweight(ctx->tcp_table->usage, 1000), 0, NULL); // FIXME configurable parameters
+       uint32_t last_reset = 0;
+       int ret = KNOT_EOK;
+       do {
+               ret = knot_xdp_tcp_timeout(ctx->tcp_table, xdp_sock, 20, 2000000, 4000000, // FIXME configurable parameters
+                                          overweight(ctx->tcp_table->usage, 1000), 0, &last_reset);
+       } while (last_reset > 0 && ret == KNOT_EOK);
+       return ret;
 }
 
 #endif // ENABLE_XDP