diff options
| author | David Gibson <david@gibson.dropbear.id.au> | 2025-04-04 21:15:42 +1100 |
|---|---|---|
| committer | Stefano Brivio <sbrivio@redhat.com> | 2025-04-07 21:44:31 +0200 |
| commit | 9725e79888374a4e4060a2d798f3407c0006cc8a (patch) | |
| tree | 7a8761f783c6a2e5d7d09d8111545430dccdeadb /contrib/qemu/git: | |
| parent | 9eb540626047bece3f25f38e47ec3b2b0030f9f4 (diff) | |
| download | passt-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/git:')
0 files changed, 0 insertions, 0 deletions
