Thanks for the help! Actually I've found out that the variable "copied" I use in this patch can be removed, we can simply increment the variable "ba" instead (ba += iov_copy).
I have the patch v3 to do that ready. Do you think it is worth sending it? Best regards, Vincenzo 2013/9/11 Stefan Hajnoczi <stefa...@redhat.com> > On Tue, Sep 10, 2013 at 02:19:47PM +0200, Vincenzo Maffione wrote: > > This patch implements the NetClientInfo.receive_iov method for the > > e1000 device emulation. In this way a network backend that uses > > qemu_sendv_packet() can deliver the fragmented packet without > > requiring an additional copy in the frontend/backend network code > > (nc_sendv_compat() function). > > > > The existing method NetClientInfo.receive has been reimplemented > > using the new method. > > > > Signed-off-by: Vincenzo Maffione <v.maffi...@gmail.com> > > --- > > hw/net/e1000.c | 71 > ++++++++++++++++++++++++++++++++++++++++++++++++---------- > > 1 file changed, 59 insertions(+), 12 deletions(-) > > > > I propose this patch also because our research group (University of Pisa, > > Department of Computer Engineering) is working on the e1000 device > > (optimizations and paravirtual extensions) and we have patches to > > support the VALE switch as a network backend (see > > http://info.iet.unipi.it/~luigi/vale/). > > The VALE backend uses qemu_sendv_packet() to send fragmented packets: For > > this reason we think it could be interesting to better support these > packets > > with e1000. > > Thanks, applied to my net tree: > https://github.com/stefanha/qemu/commits/net > > Stefan > -- Vincenzo Maffione