diff options
| author | David Gibson <david@gibson.dropbear.id.au> | 2025-04-04 21:15:34 +1100 |
|---|---|---|
| committer | Stefano Brivio <sbrivio@redhat.com> | 2025-04-07 21:30:17 +0200 |
| commit | 3a0881dfd02d758b0dc8ca6f5732bcb666b6d21e (patch) | |
| tree | 3e02469345540dfb9c256d36ed26fd420067d30a /contrib | |
| parent | 84ab1305fabaf07b5badf433e55a458de5b86918 (diff) | |
| download | passt-3a0881dfd02d758b0dc8ca6f5732bcb666b6d21e.tar passt-3a0881dfd02d758b0dc8ca6f5732bcb666b6d21e.tar.gz passt-3a0881dfd02d758b0dc8ca6f5732bcb666b6d21e.tar.bz2 passt-3a0881dfd02d758b0dc8ca6f5732bcb666b6d21e.tar.lz passt-3a0881dfd02d758b0dc8ca6f5732bcb666b6d21e.tar.xz passt-3a0881dfd02d758b0dc8ca6f5732bcb666b6d21e.tar.zst passt-3a0881dfd02d758b0dc8ca6f5732bcb666b6d21e.zip | |
udp: Don't bother to batch datagrams from "listening" socket
A "listening" UDP socket can receive datagrams from multiple flows. So,
we currently have some quite subtle and complex code in
udp_buf_listen_sock_data() to group contiguously received packets for the
same flow into batches for forwarding.
However, since we are now always using flow specific connect()ed sockets
once a flow is established, handling of datagrams on listening sockets is
essentially a slow path. Given that, it's not worth the complexity.
Substantially simplify the code by using an approach more like vhost-user,
and "peeking" at the address of the next datagram, one at a time to
determine the correct flow before we actually receive the data,
This removes all meaningful use of the s_in and tosidx fields in
udp_meta_t, so they too can be removed, along with setting of msg_name and
msg_namelen in the msghdr arrays which referenced them.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'contrib')
0 files changed, 0 insertions, 0 deletions
