From 85a80f8f63f9f6d6184afb5c06cfd3b43fc86e26 Mon Sep 17 00:00:00 2001 From: Stefano Brivio Date: Thu, 21 Oct 2021 04:42:09 +0200 Subject: udp: Fix maximum payload size calculation for IPv4 buffers, bump UDP_TAP_FRAMES The issue with a higher UDP_TAP_FRAMES was actually coming from a payload size the guest couldn't digest. Fix that, and bump UDP_TAP_FRAMES back to 128. Signed-off-by: Stefano Brivio --- udp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/udp.c b/udp.c index 67d723d..d958c27 100644 --- a/udp.c +++ b/udp.c @@ -120,7 +120,7 @@ #define UDP_CONN_TIMEOUT 180 /* s, timeout for ephemeral or local bind */ #define UDP_SPLICE_FRAMES 128 -#define UDP_TAP_FRAMES 16 +#define UDP_TAP_FRAMES 128 /** * struct udp_tap_port - Port tracking based on tap-facing source port @@ -201,7 +201,8 @@ __extension__ static struct udp4_l2_buf_t { struct ethhdr eh; struct iphdr iph; struct udphdr uh; - uint8_t data[USHRT_MAX - sizeof(struct udphdr)]; + uint8_t data[USHRT_MAX - + (sizeof(struct iphdr) + sizeof(struct udphdr))]; } __attribute__ ((packed, aligned(__alignof__(unsigned int)))) udp4_l2_buf[UDP_TAP_FRAMES] = { [ 0 ... UDP_TAP_FRAMES - 1 ] = { -- cgit v1.2.3