qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v9 05/10] move out net queue structs define


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH v9 05/10] move out net queue structs define
Date: Mon, 07 Sep 2015 11:06:14 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Yang Hongyang <address@hidden> writes:

> Hi Stefan,
>
> On 09/04/2015 06:32 PM, Stefan Hajnoczi wrote:
> [...]
>>
>> net/queue.c has logic to send/queue/flush packets but a
>> qemu_deliver_packet() call is hardcoded.
>>
>> Maybe you can extend qemu_new_net_queue() like this:
>>
>> /* Returns:
>>   *   >0 - success
>>   *    0 - queue packet for future redelivery
>>   *   <0 - failure (discard packet)
>>   */
>> typedef ssize_t NetQueueDeliverFunc(NetClientState *sender,
>>                                      unsigned flags,
>>                                  const struct iovec *iov,
>>                                  int iovcnt,
>>                                  void *opaque);
>>
>> NetQueue *qemu_new_net_queue(NetQueueDeliverFunc deliver,
>>                               void *opaque);
>>
>> Now net/net.c:qemu_net_client_setup() needs to call:
>>
>>    nc->incoming_queue = qemu_new_net_queue(qemu_deliver_packet_iov, nc);
>>
>> And the filter code can use qemu_net_queue_send_iov() and
>> qemu_net_queue_flush().  The filter just needs to provide its own
>> NetQueueDeliveryFunc.
>>
>> I haven't checked the details (e.g. non-iov delivery, etc) but the idea
>> is to use the net/queue.c API instead of duplicating similar logic in
>> the filter code.
>
> Thanks very much for the suggestion, I've already implemented it and tested,
> the code looks cleaner now.
>
> The last issue is the QOM thing, do Markus and Andreas have more input
> about that?

This series is in my review queue.  I'm struggling with clearing my
queue, and apologize for the delay.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]