qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Jason Wang <jasowang@redhat.com>
To: Yang Hongyang <yanghy@cn.fujitsu.com>, qemu-devel@nongnu.org
Cc: thuth@redhat.com, zhang.zhanghailiang@huawei.com,
	lizhijian@cn.fujitsu.com, mrhines@linux.vnet.ibm.com,
	stefanha@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 0/9] For QEMU 2.5: Add a netfilter object and netbuffer filter
Date: Fri, 31 Jul 2015 13:58:49 +0800	[thread overview]
Message-ID: <55BB0E99.7080203@redhat.com> (raw)
In-Reply-To: <1438316014-8369-1-git-send-email-yanghy@cn.fujitsu.com>



On 07/31/2015 12:13 PM, Yang Hongyang wrote:
> This patch add a new object netfilter, capture all network packets.
> Also implement a netbuffer based on this object.
> the "buffer" netfilter could be used by VM FT solutions like
> MicroCheckpointing, to buffer/release packets. Or to simulate
> packet delay.
>
> Most of the changes of v2 are from Jason's comments.
> You can also get the series from:
> https://github.com/macrosheep/qemu/tree/netfilter-v2
>
> Usage:
>  -netdev tap,id=bn0
>  -netfilter buffer,id=f0,netdev=bn0,chain=in,interval=1000
>  -device e1000,netdev=bn0
>
> dynamically add/remove netfilters:
>  netfilter_add buffer,id=f0,netdev=bn0,chain=in,interval=1000
>  netfilter_del f0
>
> NOTE:
>  interval's scale is microsecond.
>  chain is optional, and is one of in|out|all, default is "all".
>        "in" means this filter will receive packets sent to the @netdev
>        "out" means this filter will receive packets sent from the @netdev
>        "all" means this filter will receive packets both sent to/from
>              the @netdev
>
> TODO:
>  - multiqueue support
>  - dump
>
> v2:
>  - add a chain option to netfilter object
>  - move the hook place earlier, before net_queue_send
>  - drop the unused api in buffer filter
>  - squash buffer filter patches into one
>  - remove receive() api from netfilter, only receive_iov() is enough
>  - addressed comments from Jason&Thomas
>
> v1:
>  initial patch.
>
> Yang Hongyang (9):
>   net: add a new object netfilter
>   init/cleanup of netfilter object
>   netfilter: add netfilter_{add|del} commands
>   net: add/remove filters from network backend
>   netfilter: hook packets before net queue send
>   net/queue: export qemu_net_queue_append_iov
>   move out net queue structs define
>   netfilter: add a netbuffer filter
>   filter/buffer: update command description and help
>
>  hmp-commands.hx         |  30 ++++++
>  hmp.c                   |  29 ++++++
>  hmp.h                   |   4 +
>  include/net/filter.h    |  55 +++++++++++
>  include/net/net.h       |   8 ++
>  include/net/queue.h     |  26 +++++
>  include/qemu/typedefs.h |   1 +
>  include/sysemu/sysemu.h |   1 +
>  monitor.c               |  33 +++++++
>  net/Makefile.objs       |   2 +
>  net/filter-buffer.c     | 160 ++++++++++++++++++++++++++++++
>  net/filter.c            | 251 ++++++++++++++++++++++++++++++++++++++++++++++++
>  net/filters.h           |  17 ++++
>  net/net.c               | 105 +++++++++++++++++++-
>  net/queue.c             |  31 ++----
>  qapi-schema.json        | 100 +++++++++++++++++++
>  qemu-options.hx         |   4 +
>  qmp-commands.hx         |  57 +++++++++++
>  vl.c                    |  13 +++
>  19 files changed, 901 insertions(+), 26 deletions(-)
>  create mode 100644 include/net/filter.h
>  create mode 100644 net/filter-buffer.c
>  create mode 100644 net/filter.c
>  create mode 100644 net/filters.h
>

Hi:

I would like to have some unit-tests with this series. It could be
started with very simple cases, e.g something like this:

1) adding or removing net filter
2) adding a net filter then destroy the netdev
3) adding and remove more than one net filters
4) adding more than one net filter and they delete the netdev

  parent reply	other threads:[~2015-07-31  5:59 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-31  4:13 [Qemu-devel] [PATCH v2 0/9] For QEMU 2.5: Add a netfilter object and netbuffer filter Yang Hongyang
2015-07-31  4:13 ` [Qemu-devel] [PATCH v2 1/9] net: add a new object netfilter Yang Hongyang
2015-07-31  4:13 ` [Qemu-devel] [PATCH v2 2/9] init/cleanup of netfilter object Yang Hongyang
2015-07-31  4:13 ` [Qemu-devel] [PATCH v2 3/9] netfilter: add netfilter_{add|del} commands Yang Hongyang
2015-07-31  4:13 ` [Qemu-devel] [PATCH v2 4/9] net: add/remove filters from network backend Yang Hongyang
2015-07-31  4:13 ` [Qemu-devel] [PATCH v2 5/9] netfilter: hook packets before net queue send Yang Hongyang
2015-07-31  6:06   ` Jason Wang
2015-07-31  8:24     ` Yang Hongyang
2015-07-31  9:09       ` Jason Wang
2015-07-31  9:58         ` Yang Hongyang
2015-07-31  4:13 ` [Qemu-devel] [PATCH v2 6/9] net/queue: export qemu_net_queue_append_iov Yang Hongyang
2015-07-31  4:13 ` [Qemu-devel] [PATCH v2 7/9] move out net queue structs define Yang Hongyang
2015-07-31  4:13 ` [Qemu-devel] [PATCH v2 8/9] netfilter: add a netbuffer filter Yang Hongyang
2015-07-31  6:08   ` Jason Wang
2015-07-31  8:30     ` Yang Hongyang
2015-07-31  9:15       ` Jason Wang
2015-07-31 18:58   ` Dr. David Alan Gilbert
2015-08-03  1:10     ` Yang Hongyang
2015-07-31  4:13 ` [Qemu-devel] [PATCH v2 9/9] filter/buffer: update command description and help Yang Hongyang
2015-07-31  5:58 ` Jason Wang [this message]
2015-07-31  8:20   ` [Qemu-devel] [PATCH v2 0/9] For QEMU 2.5: Add a netfilter object and netbuffer filter Yang Hongyang
2015-07-31  9:08     ` Jason Wang
2015-07-31  9:51       ` Yang Hongyang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55BB0E99.7080203@redhat.com \
    --to=jasowang@redhat.com \
    --cc=lizhijian@cn.fujitsu.com \
    --cc=mrhines@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=thuth@redhat.com \
    --cc=yanghy@cn.fujitsu.com \
    --cc=zhang.zhanghailiang@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).