qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] difference between receive_raw() and receive() NetClientInf


From: Luigi Rizzo
Subject: [Qemu-devel] difference between receive_raw() and receive() NetClientInfo methods ?
Date: Thu, 6 Jun 2013 11:40:37 +0200

Can someone clarify what is the difference between the two methods
r
eceive_raw() and receive() in NetClientInfo ?
 
tap seems to be the only backend actually implementing receive_raw(),
but apart from prepending a vnet_hdr i cannot tell what is this for,
and whether receive_raw() is a custom addon for tap, or it can be used
by other backends to implement different features.

The reason I am asking is that we are working on a "fewer copies"
path between guests, and one of the things we need is an
asynchronous "receive" so that a backend can notify the frontend
when a buffer has been actually consumed.
Right now nc->info->receive() and friends are all synchronous,
and there is no mechanism to support asynchronous completion,
which forces the backend to make a copy if it cannot
complete the request inline.
Hence i probably need to add another method to NetClientInfo
so that the frontend can register the callback, or pass it to
the backend together with the buffer/iov
 
thanks
luigi



reply via email to

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