I do not take this as v2 because the design of this has been changed, and code is rewritten. according to thread: http://lists.nongnu.org/archive/html/qemu-devel/2015-07/msg05445.html
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 Macrocheckpointing, to buffer/release packets. Or to simulate packet delay. Usage: -netdev tap,id=bn0 -netfilter buffer,id=f0,netdev=bn0,interval=1000 -device e1000,netdev=bn0 dynamically add/remove netfilters: netfilter_add buffer,id=f0,netdev=bn0,interval=1000 netfilter_del f0 TODO: - multiqueue support - dump Yang Hongyang (12): 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 receive netfilter: provide a compat receive_iov net/queue: export qemu_net_queue_append move out net queue structs define netfilter: add a netbuffer filter netbuffer: add a public api filter_buffer_release_all filter/buffer: add an interval option to buffer filter filter/buffer: update command description and help hmp-commands.hx | 30 ++++++ hmp.c | 29 ++++++ hmp.h | 4 + include/net/filter.h | 59 +++++++++++ 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 | 192 ++++++++++++++++++++++++++++++++++ net/filter.c | 270 ++++++++++++++++++++++++++++++++++++++++++++++++ net/filters.h | 17 +++ net/net.c | 103 +++++++++++++++++- net/queue.c | 31 ++---- qapi-schema.json | 86 +++++++++++++++ qemu-options.hx | 4 + qmp-commands.hx | 55 ++++++++++ vl.c | 13 +++ 19 files changed, 938 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 -- 1.9.1