diff options
author | Stefano Brivio <sbrivio@redhat.com> | 2021-10-21 04:42:09 +0200 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2021-10-21 04:42:09 +0200 |
commit | 85a80f8f63f9f6d6184afb5c06cfd3b43fc86e26 (patch) | |
tree | c678c54328804eb197a95571d6ce53a56c453d69 | |
parent | dd942eaa480a0744fd64844f34233900a0da6893 (diff) | |
download | passt-85a80f8f63f9f6d6184afb5c06cfd3b43fc86e26.tar passt-85a80f8f63f9f6d6184afb5c06cfd3b43fc86e26.tar.gz passt-85a80f8f63f9f6d6184afb5c06cfd3b43fc86e26.tar.bz2 passt-85a80f8f63f9f6d6184afb5c06cfd3b43fc86e26.tar.lz passt-85a80f8f63f9f6d6184afb5c06cfd3b43fc86e26.tar.xz passt-85a80f8f63f9f6d6184afb5c06cfd3b43fc86e26.tar.zst passt-85a80f8f63f9f6d6184afb5c06cfd3b43fc86e26.zip |
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 <sbrivio@redhat.com>
-rw-r--r-- | udp.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -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 ] = { |