On 08/06/2015 03:22 PM, Yang Hongyang wrote: > On 08/06/2015 03:07 PM, Jason Wang wrote: >> >> >> On 08/04/2015 04:30 PM, Yang Hongyang wrote: >>> QTAILQ_ENTRY global_list but used by filter layer, so that we can >>> manage all filters together. >>> QTAILQ_ENTRY next used by netdev, filter belongs to the specific >>> netdev is >>> in this queue. >>> This is mostly the same with init/cleanup of netdev object. >>> >>> Signed-off-by: Yang Hongyang <yan...@cn.fujitsu.com> >>> --- >>> include/net/filter.h | 39 +++++++++++++ >>> include/net/net.h | 1 + >>> include/qemu/typedefs.h | 1 + >>> net/filter.c | 147 >>> ++++++++++++++++++++++++++++++++++++++++++++++++ >>> net/net.c | 1 + >>> qapi-schema.json | 37 ++++++++++++ >>> 6 files changed, 226 insertions(+) >>> >>> diff --git a/include/net/filter.h b/include/net/filter.h >>> index 4242ded..9aafe08 100644 >>> --- a/include/net/filter.h >>> +++ b/include/net/filter.h >>> @@ -9,7 +9,46 @@ >>> #define QEMU_NET_FILTER_H >>> >>> #include "qemu-common.h" >>> +#include "qemu/typedefs.h" >>> + >>> +/* the netfilter chain */ >>> +enum { >>> + NET_FILTER_IN, >>> + NET_FILTER_OUT, >>> + NET_FILTER_ALL, >>> +}; >>> + >>> +typedef void (FilterCleanup) (NetFilterState *); >>> +/* >>> + * Return: >>> + * 0: finished handling the packet, we should continue >>> + * size: filter stolen this packet, we stop pass this packet further >>> + */ >>> +typedef ssize_t (FilterReceiveIOV)(NetFilterState *, NetClientState >>> *sender, >>> + unsigned flags, const struct >>> iovec *, int); >> >> Please name all parameters. > > Ok, thanks. > >> >>> + >>> +typedef struct NetFilterInfo { >>> + NetFilterOptionsKind type; >>> + size_t size; >>> + FilterCleanup *cleanup; >>> + FilterReceiveIOV *receive_iov; >>> +} NetFilterInfo; >>> + >>> +struct NetFilterState { >>> + NetFilterInfo *info; >>> + char *model; >> >> Looks like model is never used? > > It can be used when we want to find filters by model. For example, > when we need to find all "buffer" filter, and release all buffered > packets.
But this is not implemented in this series. And I don't get why you need a such command. Management should keep track of this. > >> >> [...] >> . >> >