aboutgitcodebugslistschat
path: root/contrib/qemu
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2025-04-04 21:15:42 +1100
committerStefano Brivio <sbrivio@redhat.com>2025-04-07 21:44:31 +0200
commit9725e79888374a4e4060a2d798f3407c0006cc8a (patch)
tree7a8761f783c6a2e5d7d09d8111545430dccdeadb /contrib/qemu
parent9eb540626047bece3f25f38e47ec3b2b0030f9f4 (diff)
downloadpasst-9725e79888374a4e4060a2d798f3407c0006cc8a.tar
passt-9725e79888374a4e4060a2d798f3407c0006cc8a.tar.gz
passt-9725e79888374a4e4060a2d798f3407c0006cc8a.tar.bz2
passt-9725e79888374a4e4060a2d798f3407c0006cc8a.tar.lz
passt-9725e79888374a4e4060a2d798f3407c0006cc8a.tar.xz
passt-9725e79888374a4e4060a2d798f3407c0006cc8a.tar.zst
passt-9725e79888374a4e4060a2d798f3407c0006cc8a.zip
udp_flow: Don't discard packets that arrive between bind() and connect()
When we establish a new UDP flow we create connect()ed sockets that will only handle datagrams for this flow. However, there is a race between bind() and connect() where they might get some packets queued for a different flow. Currently we handle this by simply discarding any queued datagrams after the connect. UDP protocols should be able to handle such packet loss, but it's not ideal. We now have the tools we need to handle this better, by redirecting any datagrams received during that race to the appropriate flow. We need to use a deferred handler for this to avoid unexpectedly re-ordering datagrams in some edge cases. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> [sbrivio: Update comment to udp_flow_defer()] Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'contrib/qemu')
0 files changed, 0 insertions, 0 deletions