[ovs-dev] [PATCH v4 2/4] dpctl: Update docs about dump-flows and HW offloading.

Roi Dayan roid at mellanox.com
Tue May 21 16:48:10 UTC 2019



On 15/05/2019 18:35, Ilya Maximets wrote:
> Since introduction of dynamic flow API for netdevs, tricky
> accesses to uninitialized flow API are no longer possible.
> So, ovs-dpctl doesn't support dumping HW offloaded flows now.
> Claim this in docs and man pages. Additionally forbidden
> 'type' argument for 'ovs-dpctl dump-flows'.
> 
> Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
> ---
>  Documentation/faq/design.rst | 5 ++++-
>  lib/dpctl.c                  | 7 +++++++
>  lib/dpctl.man                | 2 ++
>  vswitchd/vswitch.xml         | 5 +++++
>  4 files changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/faq/design.rst b/Documentation/faq/design.rst
> index 4732cb1dd..efb62a2f7 100644
> --- a/Documentation/faq/design.rst
> +++ b/Documentation/faq/design.rst
> @@ -73,10 +73,13 @@ Q: Why are there so many different ways to dump flows?
>        Linux kernel-based datapath.  In Open vSwitch 1.10 and later,
>        ovs-vswitchd merges multiple switches into a single datapath, so it will
>        show all the flows on all your kernel-based switches.  This command can
> -      occasionally be useful for debugging.
> +      occasionally be useful for debugging.  It doesn't dump flows that was
> +      offloaded to hardware.
>  
>      - ``ovs-appctl dpif/dump-flows <br>``, new in Open vSwitch 1.10, dumps
>        datapath flows for only the specified bridge, regardless of the type.
> +      Supports dumping of HW offloaded flows.  See ovs-vswitchd(8) for
> +      details.
>  
>  Q: How does multicast snooping works with VLANs?
>  
> diff --git a/lib/dpctl.c b/lib/dpctl.c
> index 9c4eb65d9..f9eb1cad3 100644
> --- a/lib/dpctl.c
> +++ b/lib/dpctl.c
> @@ -963,6 +963,13 @@ dpctl_dump_flows(int argc, const char *argv[], struct dpctl_params *dpctl_p)
>          if (!strncmp(argv[argc - 1], "filter=", 7) && !filter) {
>              filter = xstrdup(argv[--argc] + 7);
>          } else if (!strncmp(argv[argc - 1], "type=", 5) && !types_list) {
> +            if (!dpctl_p->is_appctl) {
> +                dpctl_error(dpctl_p, 0,
> +                            "Invalid argument 'type'. "
> +                            "Use 'ovs-appctl dpctl/dump-flows' instead.");
> +                error = EINVAL;
> +                goto out_free;
> +            }
>              types_list = xstrdup(argv[--argc] + 5);
>          }
>      }
> diff --git a/lib/dpctl.man b/lib/dpctl.man
> index 1ff351170..1eeef38a7 100644
> --- a/lib/dpctl.man
> +++ b/lib/dpctl.man
> @@ -119,6 +119,7 @@ flow. As an example, \fBfilter='tcp,tp_src=100'\fR will match the
>  datapath flow containing '\fBtcp(src=80/0xff00,dst=8080/0xff)\fR'.
>  .IP
>  If \fBtype=\fItype\fR is specified, only displays flows of the specified types.
> +This option supported only for \fBovs\-appctl dpctl/dump\-flows\fR.
>  \fItype\fR is a comma separated list, which can contain any of the following:
>  .
>     \fBovs\fR - displays flows handled in the ovs dp
> @@ -128,6 +129,7 @@ If \fBtype=\fItype\fR is specified, only displays flows of the specified types.
>     \fBall\fR - displays all the types of flows
>  .IP
>  By default all the types of flows are displayed.
> +\fBovs\-dpctl\fR always acts as if the \fBtype\fR was \fIovs\fR.
>  .
>  .IP "\*(DX\fBadd\-flow\fR [\fIdp\fR] \fIflow actions\fR"
>  .TP
> diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
> index 08001dbce..672b3c3ad 100644
> --- a/vswitchd/vswitch.xml
> +++ b/vswitchd/vswitch.xml
> @@ -208,6 +208,11 @@
>            available, Open vSwitch may not be able to offload
>            functionality to hardware.
>          </p>
> +        <p>
> +          In order to dump HW offloaded flows use
> +          <code>ovs-appctl dpctl/dump-flows</code>, <code>ovs-dpctl</code>
> +          doesn't support this functionality. See ovs-vswitchd(8) for details.
> +        </p>
>        </column>
>  
>        <column name="other_config" key="tc-policy"
> 

Acked-by: Roi Dayan <roid at mellanox.com>



More information about the dev mailing list