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: Mon, 31 Aug 2015 09:30:15 +0800	[thread overview]
Message-ID: <55E3AE27.4060109@cn.fujitsu.com> (raw)
In-Reply-To: <87eginabbo.fsf@blackfin.pond.sub.org>



On 08/28/2015 07:42 PM, Markus Armbruster wrote:
> Yang Hongyang <yanghy@cn.fujitsu.com> writes:
>
>> 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.
>
> Perhaps a less terse explanation would make that easier to understand.
> Try to do it for STEXI..ETEXI, and then we can see whether we still want
> to make the help text less terse, too.

Ok, thanks!

>
>>>
>>> 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.
>
> Recommend to say just "network packets" then.

Ok, thanks.

>
>>>>                                                          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.
>
> The commit message of the patch that adds the still non-functional
> command should explain that it doesn't yet work, because it's still
> merely infrastructure without an actual user, and that you'll add the
> first user shortly.

Will do, thanks!

> .
>

-- 
Thanks,
Yang.

  reply	other threads:[~2015-08-31  1:30 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
2015-08-28 11:42       ` Markus Armbruster
2015-08-31  1:30         ` Yang Hongyang [this message]
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=55E3AE27.4060109@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).