[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 13/13] virtio-net: implement rx packet queueing
From: |
Mark McLoughlin |
Subject: |
[Qemu-devel] [PATCH 13/13] virtio-net: implement rx packet queueing |
Date: |
Fri, 22 May 2009 15:25:30 +0100 |
If we don't have room to receive a packet, we return zero
from virtio_net_receive() and call qemu_flush_queued_packets()
as soon as space becomes available.
Signed-off-by: Mark McLoughlin <address@hidden>
---
hw/virtio-net.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/hw/virtio-net.c b/hw/virtio-net.c
index 6b34c5a..a3ba890 100644
--- a/hw/virtio-net.c
+++ b/hw/virtio-net.c
@@ -269,6 +269,9 @@ static void virtio_net_handle_ctrl(VirtIODevice *vdev,
VirtQueue *vq)
static void virtio_net_handle_rx(VirtIODevice *vdev, VirtQueue *vq)
{
+ VirtIONet *n = to_virtio_net(vdev);
+
+ qemu_flush_queued_packets(n->vc);
}
static int do_virtio_net_can_receive(VirtIONet *n, int bufsize)
@@ -368,7 +371,7 @@ static ssize_t virtio_net_receive(VLANClientState *vc,
const uint8_t *buf, size_
size_t hdr_len, offset, i;
if (!do_virtio_net_can_receive(n, size))
- return -1;
+ return 0;
if (!receive_filter(n, buf, size))
return size;
--
1.6.0.6
- [Qemu-devel] [PATCH 03/13] net: vlan clients with no fd_can_read() can always receive, (continued)
- [Qemu-devel] [PATCH 03/13] net: vlan clients with no fd_can_read() can always receive, Mark McLoughlin, 2009/05/19
- [Qemu-devel] [PATCH 04/13] net: only read from tapfd when we can send, Mark McLoughlin, 2009/05/19
- [Qemu-devel] [PATCH 05/13] net: add fd_readv() handler to qemu_new_vlan_client() args, Mark McLoughlin, 2009/05/19
- [Qemu-devel] [PATCH 06/13] net: re-name vc->fd_read() to vc->receive(), Mark McLoughlin, 2009/05/19
- [Qemu-devel] [PATCH 07/13] net: pass VLANClientState* as first arg to receive handlers, Mark McLoughlin, 2009/05/19
- [Qemu-devel] [PATCH 08/13] net: add return value to packet receive handler, Mark McLoughlin, 2009/05/19
- [Qemu-devel] [PATCH 09/13] net: return status from qemu_deliver_packet(), Mark McLoughlin, 2009/05/19
- [Qemu-devel] [PATCH 10/13] net: split out packet queueing and flushing into separate functions, Mark McLoughlin, 2009/05/22
- [Qemu-devel] [PATCH 11/13] net: add qemu_send_packet_async(), Mark McLoughlin, 2009/05/22
- [Qemu-devel] [PATCH 12/13] net: make use of async packet sending API in tap client, Mark McLoughlin, 2009/05/22
- [Qemu-devel] [PATCH 13/13] virtio-net: implement rx packet queueing,
Mark McLoughlin <=
Re: [Qemu-devel] [PATCH 0/13] Add generic packet buffering API, Avi Kivity, 2009/05/19
[Qemu-devel] Re: [PATCH 0/13] Add generic packet buffering API, Anthony Liguori, 2009/05/22