Stefano Garzarella
2023-Jun-22 16:09 UTC
[PATCH RFC net-next v4 6/8] virtio/vsock: support dgrams
On Sun, Jun 11, 2023 at 11:49:02PM +0300, Arseniy Krasnov wrote:>Hello Bobby! > >On 10.06.2023 03:58, Bobby Eshleman wrote: >> This commit adds support for datagrams over virtio/vsock. >> >> Message boundaries are preserved on a per-skb and per-vq entry basis. > >I'm a little bit confused about the following case: let vhost sends 4097 bytes >datagram to the guest. Guest uses 4096 RX buffers in it's virtio queue, each >buffer has attached empty skb to it. Vhost places first 4096 bytes to the first >buffer of guests RX queue, and 1 last byte to the second buffer. Now IIUC guest >has two skb in it rx queue, and user in guest wants to read data - does it read >4097 bytes, while guest has two skb - 4096 bytes and 1 bytes? In seqpacket there is >special marker in header which shows where message ends, and how it works here?I think the main difference is that DGRAM is not connection-oriented, so we don't have a stream and we can't split the packet into 2 (maybe we could, but we have no guarantee that the second one for example will be not discarded because there is no space). So I think it is acceptable as a restriction to keep it simple. My only doubt is, should we make the RX buffer size configurable, instead of always using 4k? Thanks, Stefano