[ovs-dev] [PATCH] FAQ: Add an entry describing the different ways to dump flows.
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
> 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