On Thu, Nov 01, 2012 at 10:06:55AM -0700, Justin Pettit wrote:
> Signed-off-by: Justin Pettit <jpet...@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.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to