X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=utilities%2Fovs-ofctl.8.in;h=cddde1f5c73e7fa01203b7bf98fc17a1349556af;hb=63b1a5213331cd962be05df57f1375db902216c5;hp=b45f01c6db2d4a362d2b04e99fde9c0f20b27204;hpb=43edca5717cf389eb87850abbf30efc738049921;p=openvswitch diff --git a/utilities/ovs-ofctl.8.in b/utilities/ovs-ofctl.8.in index b45f01c6..cddde1f5 100644 --- a/utilities/ovs-ofctl.8.in +++ b/utilities/ovs-ofctl.8.in @@ -143,7 +143,7 @@ Deletes entries from \fIswitch\fR's flow table. With only a entries that match the specified flows. With \fB\-\-strict\fR, wildcards are not treated as active for matching purposes. . -.IP "\fBreplace\-flows \fIswitch file\fR" +.IP "[\fB\-\-readd\fR] \fBreplace\-flows \fIswitch file\fR" Reads flow entries from \fIfile\fR (or \fBstdin\fR if \fIfile\fR is \fB\-\fR) and queries the flow table from \fIswitch\fR. Then it fixes up any differences, adding flows from \fIflow\fR that are missing on @@ -151,6 +151,12 @@ up any differences, adding flows from \fIflow\fR that are missing on \fIfile\fR, and updating flows in \fIswitch\fR whose actions, cookie, or timeouts differ in \fIfile\fR. . +.IP +With \fB\-\-readd\fR, \fBovs\-ofctl\fR adds all the flows from +\fIfile\fR, even those that exist with the same actions, cookie, and +timeout in \fIswitch\fR. This resets all the flow packet and byte +counters to 0, which can be useful for debugging. +. .IP "\fBdiff\-flows \fIsource1 source2\fR" Reads flow entries from \fIsource1\fR and \fIsource2\fR and prints the differences. A flow that is in \fIsource1\fR but not in \fIsource2\fR @@ -565,7 +571,14 @@ of the following keywords: . .RS .IP \fBoutput\fR:\fIport\fR -Outputs the packet on the port specified by \fIport\fR. +.IQ \fBoutput\fR:\fIsrc\fB[\fIstart\fB..\fIend\fB] +Outputs the packet. If \fIport\fR is an OpenFlow port number, outputs directly +to it. Otherwise, outputs to the OpenFlow port number read from \fIsrc\fR +which must be an NXM field as described above. Outputting to an NXM field is +an OpenFlow extension which is not supported by standard OpenFlow switches. +.IP +Example: \fBoutput:NXM_NX_REG0[16..31]\fR outputs to the OpenFlow port number +written in the upper half of register 0. . .IP \fBenqueue\fR:\fIport\fB:\fIqueue\fR Enqueues the packet on the specified \fIqueue\fR within port @@ -649,15 +662,21 @@ only known to be implemented by Open vSwitch: .RS . .IP \fBresubmit\fB:\fIport\fR -Re-searches the OpenFlow flow table with the \fBin_port\fR field -replaced by \fIport\fR and executes the actions found, if any, in -addition to any other actions in this flow entry. Recursive -\fBresubmit\fR actions are ignored. +.IQ \fBresubmit\fB(\fR[\fIport\fR]\fB,\fR[\fItable\fR]\fB) +Re-searches this OpenFlow flow table (or the table whose number is +specified by \fItable\fR) with the \fBin_port\fR field replaced by +\fIport\fR (if \fIport\fR is specified) and executes the actions +found, if any, in addition to any other actions in this flow entry. +.IP +Recursive \fBresubmit\fR actions are obeyed up to an +implementation-defined maximum depth. Open vSwitch 1.0.1 and earlier +did not support recursion; Open vSwitch before 1.2.90 did not support +\fItable\fR. . .IP \fBset_tunnel\fB:\fIid\fR .IQ \fBset_tunnel64\fB:\fIid\fR If outputting to a port that encapsulates the packet in a tunnel and -supports an identifier (such as GRE), sets the identifier to \fBid\fR. +supports an identifier (such as GRE), sets the identifier to \fIid\fR. If the \fBset_tunnel\fR form is used and \fIid\fR fits in 32 bits, then this uses an action extension that is supported by Open vSwitch 1.0 and later. Otherwise, if \fIid\fR is a 64-bit value, it requires @@ -677,7 +696,7 @@ Does nothing at all. Any number of bytes represented as hex digits \fIhh\fR may be included. Pairs of hex digits may be separated by periods for readability. . -.IP "\fBmove:\fIsrc\fB[\fIstart\fB..\fIend\fB]->\fIdst\fB[\fIstart\fB..\fIend\fB]\fR" +.IP "\fBmove:\fIsrc\fB[\fIstart\fB..\fIend\fB]\->\fIdst\fB[\fIstart\fB..\fIend\fB]\fR" Copies the named bits from field \fIsrc\fR to field \fIdst\fR. \fIsrc\fR and \fIdst\fR must be NXM field names as defined in \fBnicira\-ext.h\fR, e.g. \fBNXM_OF_UDP_SRC\fR or \fBNXM_NX_REG0\fR. @@ -690,12 +709,12 @@ entire field. Examples: \fBmove:NXM_NX_REG0[0..5]\->NXM_NX_REG1[26..31]\fR copies the six bits numbered 0 through 5, inclusive, in register 0 into bits 26 through 31, inclusive; -\fBmove:NXM_NX_REG0[0..15]->NXM_OF_VLAN_TCI[]\fR copies the least +\fBmove:NXM_NX_REG0[0..15]\->NXM_OF_VLAN_TCI[]\fR copies the least significant 16 bits of register 0 into the VLAN TCI field. . .IP "\fBload:\fIvalue\fB\->\fIdst\fB[\fIstart\fB..\fIend\fB]" Writes \fIvalue\fR to bits \fIstart\fR through \fIend\fR, inclusive, -in field \fBdst\fR. +in field \fIdst\fR. .IP Example: \fBload:55\->NXM_NX_REG2[0..5]\fR loads value 55 (bit pattern \fB110111\fR) into bits 0 through 5, inclusive, in register 2. @@ -743,11 +762,20 @@ hash with basis 0, to select between OpenFlow ports 4 and 8 using the Highest Random Weight algorithm. .IP Refer to \fBnicira\-ext.h\fR for more details. -.RE . +.IP "\fBbundle_load(\fIfields\fB, \fIbasis\fB, \fIalgorithm\fB, \fIslave_type\fB, \fIdst\fB[\fIstart\fB..\fIend\fB], slaves:[\fIs1\fB, \fIs2\fB, ...])\fR" +Has the same behavior as the \fBbundle\fR action, with one exception. Instead +of outputting to the selected slave, it writes its selection to +\fIdst\fB[\fIstart\fB..\fIend\fB]\fR, which must be an NXM field as described +above. +.IP +Example: \fBbundle_load(eth_src, 0, hrw, ofport, NXM_NX_REG0[], +slaves:4, 8)\fR uses an Ethernet source hash with basis 0, to select +between OpenFlow ports 4 and 8 using the Highest Random Weight +algorithm, and writes the selection to \fBNXM_NX_REG0[]\fR. .IP -(The OpenFlow protocol supports other actions that \fBovs\-ofctl\fR does -not yet expose to the user.) +Refer to \fBnicira\-ext.h\fR for more details. +.RE . .PP The \fBadd\-flow\fR, \fBadd\-flows\fR, and \fBmod\-flows\fR commands