qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2 0/9] For QEMU 2.5: Add a netfilter object and


From: Jason Wang
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
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0


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



reply via email to

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