qemu_net_queue_send() and qemu_net_queue_send_iov() can flush enqueued packets before delivering a new packet, in this way the original packet ordering is preserved.
Signed-off-by: Stefano Garzarella <s.garzare...@evidence.eu.com> --- net/queue.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/net/queue.c b/net/queue.c index 9c32abd..aa18e5e 100644 --- a/net/queue.c +++ b/net/queue.c @@ -196,14 +196,14 @@ ssize_t qemu_net_queue_send(NetQueue *queue, return 0; } + qemu_net_queue_flush(queue); + ret = qemu_net_queue_deliver(queue, sender, flags, data, size); if (ret == 0) { qemu_net_queue_append(queue, sender, flags, data, size, sent_cb); return 0; } - qemu_net_queue_flush(queue); - return ret; } @@ -221,14 +221,14 @@ ssize_t qemu_net_queue_send_iov(NetQueue *queue, return 0; } + qemu_net_queue_flush(queue); + ret = qemu_net_queue_deliver_iov(queue, sender, flags, iov, iovcnt); if (ret == 0) { qemu_net_queue_append_iov(queue, sender, flags, iov, iovcnt, sent_cb); return 0; } - qemu_net_queue_flush(queue); - return ret; } -- 2.9.0