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