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>
This commit is contained in:
parent
dd942eaa48
commit
85a80f8f63
1 changed files with 3 additions and 2 deletions
5
udp.c
5
udp.c
|
@ -120,7 +120,7 @@
|
||||||
|
|
||||||
#define UDP_CONN_TIMEOUT 180 /* s, timeout for ephemeral or local bind */
|
#define UDP_CONN_TIMEOUT 180 /* s, timeout for ephemeral or local bind */
|
||||||
#define UDP_SPLICE_FRAMES 128
|
#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
|
* 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 ethhdr eh;
|
||||||
struct iphdr iph;
|
struct iphdr iph;
|
||||||
struct udphdr uh;
|
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))))
|
} __attribute__ ((packed, aligned(__alignof__(unsigned int))))
|
||||||
udp4_l2_buf[UDP_TAP_FRAMES] = {
|
udp4_l2_buf[UDP_TAP_FRAMES] = {
|
||||||
[ 0 ... UDP_TAP_FRAMES - 1 ] = {
|
[ 0 ... UDP_TAP_FRAMES - 1 ] = {
|
||||||
|
|
Loading…
Reference in a new issue