[ovs-dev] [PATCH] FAQ: Add an entry describing the different ways to dump flows.

Justin Pettit jpettit at nicira.com
Mon Feb 4 21:59:00 UTC 2013

On Nov 1, 2012, at 1:03 PM, Ben Pfaff <blp at nicira.com> wrote:

> On Thu, Nov 01, 2012 at 10:06:55AM -0700, Justin Pettit wrote:
>> Signed-off-by: Justin Pettit <jpettit at nicira.com>
> This is really good (thank you!), but I think it can be improved.
> First, I don't think it's a good idea to emphasize a kernel/user split
> here.  That's an implementation detail that I don't really want to
> expose to our users more than we have to, especially since we might
> want to change the split in some way later.  (Maybe a netmap-like
> interface will turn out to be really fast and awesome, etc.)  And the
> term "userspace" is probably better written "OpenFlow", really.
> Here is my suggestion:
> Q: Why are there so many different ways to dump flows?
> A: Open vSwitch uses different kinds of flows for different purposes:
>       - OpenFlow flows are the most important kind of flow.  OpenFlow
>         controllers use these flows to define a switch's policy.
>         OpenFlow flows support wildcards, priorities, and multiple
>         tables.
>         When in-band control is in use, Open vSwitch sets up a few
>         "hidden" flows, with priority higher than a controller or the
>         user can configure, that are not visible via OpenFlow.  (See
>         the "Controller" section of the FAQ for more information
>         about hidden flows.)
>       - The Open vSwitch software switch implementation uses a second
>         kind of flow internally.  These flows, called "exact-match"
>         or "datapath" or "kernel" flows, do not support wildcards or
>         priorities and comprise only a single table, which makes them
>         suitable for caching.   OpenFlow flows and exact-match flows
>         also support different actions and number ports differently.
>         Exact-match flows are an implementation detail that is
>         subject to change in future versions of Open vSwitch.  Even
>         with the current version of Open vSwitch, hardware switch
>         implementations do not necessarily use exact-match flows.
>   Each of the commands for dumping flows has a different purpose:
>       - "ovs-ofctl dump-flows <br>" dumps OpenFlow flows, excluding
>         hidden flows.  This is the most commonly useful form of flow
>         dump.  (Unlike the other commands, this should work with any
>         OpenFlow switch, not just Open vSwitch.)
>       - "ovs-appctl bridge/dump-flows <br>" dumps OpenFlow flows,
>         including hidden flows.  This is occasionally useful for
>         troubleshooting suspected issues with in-band control.
>       - "ovs-dpctl dump-flows [dp]" dumps the exact-match flow table
>         entries for a Linux kernel-based datapath.  In Open vSwitch
>         1.10 and later, ovs-vswitchd later 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.
>       - "ovs-appctl dpif/dump-flows <br>", new in Open vSwitch 1.10,
>         dumps exact-match flows for only the specified bridge,
>         regardless of the type.

Thanks, Ben.  I pushed it with your suggestions (after much delay).


More information about the dev mailing list