qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v4 02/11] init/cleanup of netfilter object


From: Jason Wang
Subject: Re: [Qemu-devel] [PATCH v4 02/11] init/cleanup of netfilter object
Date: Thu, 06 Aug 2015 15:29:01 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0


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 <address@hidden>
>>> ---
>>>   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.

>
>>
>> [...]
>> .
>>
>




reply via email to

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