From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=56836 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OZUxU-0002J1-3n for qemu-devel@nongnu.org; Thu, 15 Jul 2010 16:23:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OZUxS-0006OY-R6 for qemu-devel@nongnu.org; Thu, 15 Jul 2010 16:23:04 -0400 Received: from mail-yx0-f173.google.com ([209.85.213.173]:36485) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OZUxS-0006O8-Ok for qemu-devel@nongnu.org; Thu, 15 Jul 2010 16:23:02 -0400 Received: by yxn35 with SMTP id 35so242833yxn.4 for ; Thu, 15 Jul 2010 13:23:01 -0700 (PDT) From: Miguel Di Ciurcio Filho Date: Thu, 15 Jul 2010 17:22:56 -0300 Message-Id: <1279225380-28790-1-git-send-email-miguel.filho@gmail.com> Subject: [Qemu-devel] [PATCH RFC 0/4] Dumping traffic when using netdev devices List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Miguel Di Ciurcio Filho , jan.kiszka@web.de, armbru@redhat.com, avi@redhat.com Hello, This is a prototype suggestion. I mostly copied and pasted the code from net/dump.c into net.c and made some adjustments. There is no command line parsing involved yet, just the internals and small changes in net/tap.c and net/slirp.c do make the thing work. In my tests, using tap as backend, e1000 as a guest device and running iperf from guest to host, the overhead of dumping the traffic caused a loss of around 30% of performance. I opened the dumped files in wireshark and they looked fine. When using slirp all requests were dumped fine too. Bugs/limitations: - I have no clue on how to deal with tap+vhost, is it necessary? - When using virtio-net, I'm not sure how to handle iovec when vnet_hdr=on - Create a function to add dump to a netdev on the fly, is it necessary? - Handle cleanups Miguel Di Ciurcio Filho (4): net/dump: Make pcap structures public net: Introduce NetClientDump and auxiliary functions net/tap: Suggested support for NetClientDump net/slirp: Suggested support for NetClientDump net.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ net.h | 8 +++++ net/dump.c | 21 ------------- net/dump.h | 21 +++++++++++++ net/slirp.c | 3 ++ net/tap.c | 3 ++ qemu-common.h | 1 + 7 files changed, 126 insertions(+), 21 deletions(-)