.SS "OFPROTO COMMANDS"
These commands manage the core OpenFlow switch implementation (called
\fBofproto\fR).
+.
.IP "\fBofproto/list\fR"
Lists the names of the running ofproto instances. These are the names
that may be used on \fBofproto/trace\fR.
+.
.IP "\fBofproto/trace \fIswitch tun_id in_port packet\fR"
Traces the path of an imaginary packet through \fIswitch\fR. The
arguments are:
by hand, so the \fBovs\-pcap\fR(1) and \fBovs\-tcpundump\fR(1)
utilities provide easier ways.
.RE
+.IP
\fB\*(PN\fR will respond with extensive information on how the packet
would be handled if it were to be received. The packet will not
actually be sent.
+.
+.IP "\fBofproto/trace \fIswitch odp_flow\fR"
+Traces the path of a packet in an imaginary flow through
+\fIswitch\fR. The arguments are:
+.RS
+.IP "\fIswitch\fR"
+The switch on which the packet arrived (one of those listed by
+\fBofproto/list\fR).
+.IP "\fIodp_flow\fR"
+A flow in the form printed by \fBovs\-dpctl\fR(8)'s \fBdump\-flows\fR
+command. This is not an OpenFlow flow: besides other differences, it
+never contains wildcards.
+.RE
+.IP
+\fB\*(PN\fR will respond with extensive information on how a packet
+in \fIodp_flow\fR would be handled if it were received by
+\fIswitch\fR. No packet will actually be sent.
+.IP
+This form of \fBofproto/trace\fR cannot determine the complete set of
+datapath actions in some corner cases. If the results say that this
+is the case, rerun \fBofproto/trace\fR supplying a packet in the flow
+to get complete results.