qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Yang Hongyang <yanghy@cn.fujitsu.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: thuth@redhat.com, zhang.zhanghailiang@huawei.com,
	lizhijian@cn.fujitsu.com, jasowang@redhat.com,
	qemu-devel@nongnu.org, mrhines@linux.vnet.ibm.com,
	Luiz Capitulino <lcapitulino@redhat.com>,
	stefanha@redhat.com
Subject: Re: [Qemu-devel] [PATCH v8 10/11] filter/buffer: update command description and help
Date: Thu, 27 Aug 2015 10:42:59 +0800	[thread overview]
Message-ID: <55DE7933.7070706@cn.fujitsu.com> (raw)
In-Reply-To: <87wpwijb8l.fsf@blackfin.pond.sub.org>

On 08/26/2015 11:55 PM, Markus Armbruster wrote:
> Yang Hongyang <yanghy@cn.fujitsu.com> writes:
>
>> now that we have a buffer netfilter, update the command
>> description and help.
>>
>> Signed-off-by: Yang Hongyang <yanghy@cn.fujitsu.com>
>> CC: Luiz Capitulino <lcapitulino@redhat.com>
>> CC: Markus Armbruster <armbru@redhat.com>
>> ---
>> v8: add more description for the filter to the TEXI section
>> ---
>>   hmp-commands.hx |  2 +-
>>   qemu-options.hx | 18 +++++++++++++++++-
>>   qmp-commands.hx |  2 +-
>>   3 files changed, 19 insertions(+), 3 deletions(-)
>>
>> diff --git a/hmp-commands.hx b/hmp-commands.hx
>> index 902e2d1..63177a8 100644
>> --- a/hmp-commands.hx
>> +++ b/hmp-commands.hx
>> @@ -1255,7 +1255,7 @@ ETEXI
>>       {
>>           .name       = "netfilter_add",
>>           .args_type  = "netfilter:O",
>> -        .params     = "[type],id=str,netdev=str[,chain=in|out|all,prop=value][,...]",
>> +        .params     = "[buffer],id=str,netdev=str[,chain=in|out|all,prop=value][,...]",
>>           .help       = "add netfilter",
>>           .mhandler.cmd = hmp_netfilter_add,
>>           .command_completion = netfilter_add_completion,
>
> This change looks odd.  Actually, params look odd before and after the
> change :)
>
> I suspect you're trying to follow netdev_add precedence.  Its params:
>
>          .params     = "[user|tap|socket|vde|bridge|hubport|netmap|vhost-user],id=str[,prop=value][,...]",
>
> Neglects to mention the long form type=, but that's pretty common.
>
> Uses square brackets both for grouping and for optionalness.  We suck.
>
> Users can probably figure out that the first [ ] is just grouping, and
> the others are optionalness.
>
> Your params are even more confusing, because the first [ ] is again
> grouping, but there's just one alternative: buffer.
>
> What about not simply writing
>
>          .params     = "buffer,id=str,netdev=str[,chain=in|out|all,prop=value][,...]",
>
> for now?

Sure, I agree it is confusing when it has only one alternative now...When we
added more filters, we can change it later.

>
>> diff --git a/qemu-options.hx b/qemu-options.hx
>> index 0d52d02..390e055 100644
>> --- a/qemu-options.hx
>> +++ b/qemu-options.hx
>> @@ -1575,7 +1575,10 @@ DEF("net", HAS_ARG, QEMU_OPTION_net,
>>       "socket][,vlan=n][,option][,option][,...]\n"
>>       "                old way to initialize a host network interface\n"
>>       "                (use the -netdev option if possible instead)\n", QEMU_ARCH_ALL)
>> -DEF("netfilter", HAS_ARG, QEMU_OPTION_netfilter, "", QEMU_ARCH_ALL)
>> +DEF("netfilter", HAS_ARG, QEMU_OPTION_netfilter,
>> +    "-netfilter buffer,id=str,netdev=str[,chain=in|out|all,interval=n]\n"
>> +    "                buffer netdev in/out packets. if interval provided, will release\n"
>> +    "                packets by interval. interval scale: microsecond\n", QEMU_ARCH_ALL)
>
> If I understand your intent correctly, "interval" is the amount of time
> to delay packets.  What about calling it "delay"?

You can take it as the amount of time to delay packets, but for other usecase
like MC, you can also take it as an interval to release packets, that is to
say, to release packets every {interval} time.

>
> Suggest something like
>
>      buffer network packets, delaying them for 'delay' microseconds
>      (default 0us)
>
>>   STEXI
>>   @item -net nic[,vlan=@var{n}][,macaddr=@var{mac}][,model=@var{type}] [,name=@var{name}][,addr=@var{addr}][,vectors=@var{v}]
>>   @findex -net
>> @@ -1990,6 +1993,19 @@ libpcap, so it can be analyzed with tools such as tcpdump or Wireshark.
>>   Indicate that no network devices should be configured. It is used to
>>   override the default configuration (@option{-net nic -net user}) which
>>   is activated if no @option{-net} options are provided.
>> +
>> +@item -netfilter buffer,id=@var{id},netdev=@var{netdevid}[,chain=@var{in/out/all}][,interval=@var{n}]
>
> 'n' is an unusual choice for a time delay.  What about 't', 'dt', or
> 'delay'?

't' is better, thanks!

>
>> +Buffer netdev @var{netdevid} input or output packets.
>
> Are there any other kinds of packets?

No, only input/output packets now.

>
>>                                                         if interval @var{n}
>> +provided, will release packets by interval. interval scale: microsecond.
>
> Please start sentences with a capital letter.
>
> Suggest something like
>
>      Packets are delayed by @var{n} microseconds.  Defaults to 0us,
>      i.e. no delay.
>
>> +
>> +chain @var{in/out/all} is an option that can be applied to any netfilters, if
>> +not provided, default is @option{all}.
>
> "to any netfilter" (singular)
>
> Drop "if not provided,"

Ok, thanks!

>
>> +
>> +@option{in} means this filter will receive packets sent to the netdev
>> +
>> +@option{out} means this filter will receive packets sent from the netdev
>> +
>> +@option{all} means this filter will receive packets both sent to/from the netdev
>>   ETEXI
>>
>>   STEXI
>> diff --git a/qmp-commands.hx b/qmp-commands.hx
>> index 4f0dc98..9419a6f 100644
>> --- a/qmp-commands.hx
>> +++ b/qmp-commands.hx
>> @@ -947,7 +947,7 @@ Arguments:
>>   Example:
>>
>>   -> { "execute": "netfilter_add",
>> -                "arguments": { "type": "type", "id": "nf0",
>> +                "arguments": { "type": "buffer", "id": "nf0",
>>                                  "netdev": "bn",
>>                                  "chain": "in" } }
>>   <- { "return": {} }
>
> Does the example before this patch actually work?

No, there's only type=buffer now.

> .
>

-- 
Thanks,
Yang.

  reply	other threads:[~2015-08-27  2:43 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-26  9:59 [Qemu-devel] [PATCH v8 00/11] Add a netfilter object and netbuffer filter Yang Hongyang
2015-08-26  9:59 ` [Qemu-devel] [PATCH v8 01/11] net: add a new object netfilter Yang Hongyang
2015-08-26 14:04   ` Markus Armbruster
2015-08-27  2:34     ` Yang Hongyang
2015-08-28 11:29       ` Markus Armbruster
2015-08-31  1:31         ` Yang Hongyang
2015-08-26  9:59 ` [Qemu-devel] [PATCH v8 02/11] init/cleanup of netfilter object Yang Hongyang
2015-08-26 13:13   ` Thomas Huth
2015-08-26 14:41   ` Markus Armbruster
2015-08-26 15:31     ` Eric Blake
2015-08-26  9:59 ` [Qemu-devel] [PATCH v8 03/11] netfilter: add netfilter_{add|del} commands Yang Hongyang
2015-08-26 15:17   ` Markus Armbruster
2015-08-26 15:37     ` Eric Blake
2015-08-28 11:37       ` Markus Armbruster
2015-08-31  1:36         ` Yang Hongyang
2015-08-31  7:08           ` Markus Armbruster
2015-08-31  9:01             ` Yang Hongyang
2015-08-31 14:53               ` Eric Blake
2015-09-01  1:24                 ` Yang Hongyang
2015-08-26  9:59 ` [Qemu-devel] [PATCH v8 04/11] netfilter: hook packets before net queue send Yang Hongyang
2015-08-27 14:35   ` Thomas Huth
2015-08-26  9:59 ` [Qemu-devel] [PATCH v8 05/11] move out net queue structs define Yang Hongyang
2015-08-27 14:38   ` Thomas Huth
2015-08-26  9:59 ` [Qemu-devel] [PATCH v8 06/11] netfilter: add an API to pass the packet to next filter Yang Hongyang
2015-08-27 15:11   ` Thomas Huth
2015-08-26  9:59 ` [Qemu-devel] [PATCH v8 07/11] netfilter: print filter info associate with the netdev Yang Hongyang
2015-08-27 14:46   ` Thomas Huth
2015-08-26  9:59 ` [Qemu-devel] [PATCH v8 08/11] net/queue: export qemu_net_queue_append_iov Yang Hongyang
2015-08-27 15:05   ` Thomas Huth
2015-08-26  9:59 ` [Qemu-devel] [PATCH v8 09/11] netfilter: add a netbuffer filter Yang Hongyang
2015-08-26  9:59 ` [Qemu-devel] [PATCH v8 10/11] filter/buffer: update command description and help Yang Hongyang
2015-08-26 15:55   ` Markus Armbruster
2015-08-27  2:42     ` Yang Hongyang [this message]
2015-08-28 11:42       ` Markus Armbruster
2015-08-31  1:30         ` Yang Hongyang
2015-08-26  9:59 ` [Qemu-devel] [PATCH v8 11/11] tests: add test cases for netfilter object Yang Hongyang
2015-08-26 15:58 ` [Qemu-devel] [PATCH v8 00/11] Add a netfilter object and netbuffer filter Markus Armbruster
2015-08-27  2:25   ` Yang Hongyang
2015-08-27  1:05 ` Thomas Huth
2015-08-27  2:24   ` Yang Hongyang
2015-08-27  3:15 ` Jason Wang
2015-08-31  1:43   ` 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=55DE7933.7070706@cn.fujitsu.com \
    --to=yanghy@cn.fujitsu.com \
    --cc=armbru@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=lcapitulino@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=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).