X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=utilities%2Fovs-ofctl.8.in;h=aa379694ab16a3250a828bbd795cdfe5c3e6883e;hb=299016266ed1;hp=2ce3368e1495901ffa83d3037360026c985626ff;hpb=4989c59ff3e09145f63846619c194a5d6a4a1920;p=sliver-openvswitch.git diff --git a/utilities/ovs-ofctl.8.in b/utilities/ovs-ofctl.8.in index 2ce3368e1..aa379694a 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 @@ -199,9 +205,8 @@ monitoring will not show any traffic. . .IP "\fBmonitor \fIswitch\fR [\fImiss-len\fR]" Connects to \fIswitch\fR and prints to the console all OpenFlow -messages received. Usually, \fIswitch\fR should specify a connection -named on \fBovs\-openflowd\fR(8)'s \fB\-l\fR or \fB\-\-listen\fR command line -option. +messages received. Usually, \fIswitch\fR should specify the name of a +bridge in the \fBovs\-vswitchd\fR database. .IP If \fImiss-len\fR is provided, \fBovs\-ofctl\fR sends an OpenFlow ``set configuration'' message at connection setup time that requests @@ -291,6 +296,26 @@ Matches an Ethernet source (or destination) address specified as 6 pairs of hexadecimal digits delimited by colons (e.g. \fB00:0A:E4:25:6B:B0\fR). . +.IP \fBdl_dst=\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB/\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fR +Matches an Ethernet destination address specified as 6 pairs of +hexadecimal digits delimited by colons (e.g. \fB00:0A:E4:25:6B:B0\fR), +with a wildcard mask following the slash. Only +the following masks are allowed: +.RS +.IP \fB01:00:00:00:00:00\fR +Match only the multicast bit. Thus, +\fBdl_dst=01:00:00:00:00:00/01:00:00:00:00:00\fR matches all multicast +(including broadcast) Ethernet packets, and +\fBdl_dst=00:00:00:00:00:00/01:00:00:00:00:00\fR matches all unicast +Ethernet packets. +.IP \fBfe:ff:ff:ff:ff:ff\fR +Match all bits except the multicast bit. This is probably not useful. +.IP \fBff:ff:ff:ff:ff:ff\fR +Exact match (equivalent to omitting the mask). +.IP \fB00:00:00:00:00:00\fR +Wildcard all bits (equivalent to \fBdl_dst=*\fR.) +.RE +. .IP \fBdl_type=\fIethertype\fR Matches Ethernet protocol type \fIethertype\fR, which is specified as an integer between 0 and 65535, inclusive, either in decimal or as a @@ -365,6 +390,25 @@ specified as a decimal number between 0 and 255, inclusive. When \fBdl_type\fR and \fBnw_proto\fR take other values, the values of these settings are ignored (see \fBFlow Syntax\fR above). . +.IP \fBtable=\fInumber\fR +If specified, limits the flow manipulation and flow dump commands to +only apply to the table with the given \fInumber\fR. +\fInumber\fR is a number between 0 and 254, inclusive. +. +Behavior varies if \fBtable\fR is not specified. For flow table +modification commands without \fB\-\-strict\fR, the switch will choose +the table for these commands to operate on. For flow table +modification commands with \fB\-\-strict\fR, the command will operate +on any single matching flow in any table; it will do nothing if there +are matches in more than one table. The \fBdump-flows\fR and +\fBdump-aggregate\fR commands will gather statistics about flows from +all tables. +.IP +When this field is specified in \fBadd-flow\fR, \fBadd-flows\fR, +\fBmod-flows\fR and \fBdel-flows\fR commands, it activates a Nicira +extension to OpenFlow, which as of this writing is only known to be +implemented by Open vSwitch. +. .PP The following shorthand notations are also available: . @@ -390,6 +434,43 @@ Extended Match) extension to OpenFlow. When one of these is specified, extension. If the switch does not support NXM, then \fBovs\-ofctl\fR will report a fatal error. . +.IP \fBvlan_tci=\fItci\fR[\fB/\fImask\fR] +Matches modified VLAN TCI \fItci\fR. If \fImask\fR is omitted, +\fItci\fR is the exact VLAN TCI to match; if \fImask\fR is specified, +then a 1-bit in \fItci\fR indicates that the corresponding bit in +\fItci\fR must match exactly, and a 0-bit wildcards that bit. Both +\fItci\fR and \fImask\fR are 16-bit values that are decimal by +default; use a \fB0x\fR prefix to specify them in hexadecimal. +. +.IP +The value that \fBvlan_tci\fR matches against is 0 for a packet that +has no 802.1Q header. Otherwise, it is the TCI value from the 802.1Q +header with the CFI bit (with value \fB0x1000\fR) forced to 1. +.IP +Examples: +.RS +.IP \fBvlan_tci=0\fR +Match only packets without an 802.1Q header. +.IP \fBvlan_tci=0xf123\fR +Match packets tagged with priority 7 in VLAN 0x123. +.IP \fBvlan_tci=0x1123/0x1fff\fR +Match packets tagged with VLAN 0x123 (and any priority). +.IP \fBvlan_tci=0x5000/0xf000\fR +Match packets tagged with priority 2 (in any VLAN). +.IP \fBvlan_tci=0/0xfff\fR +Match packets with no 802.1Q header or tagged with VLAN 0 (and any +priority). +.IP \fBvlan_tci=0x5000/0xe000\fR +Match packets with no 802.1Q header or tagged with priority 2 (in any +VLAN). +.IP \fBvlan_tci=0/0xefff\fR +Match packets with no 802.1Q header or tagged with VLAN 0 and priority +0. +.RE +.IP +Some of these matching possibilities can also be achieved with +\fBdl_vlan\fR and \fBdl_vlan_pcp\fR. +. .IP \fBarp_sha=\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fR .IQ \fBarp_tha=\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fR When \fBdl_type\fR specifies ARP, \fBarp_sha\fR and \fBarp_tha\fR match @@ -473,8 +554,13 @@ Same as \fBdl_type=0x86dd,nw_proto=17\fR. Same as \fBdl_type=0x86dd,nw_proto=58\fR. . .PP -The \fBadd\-flow\fR and \fBadd\-flows\fR commands require an additional -field, which must be the final field specified: +Finally, field assignments to \fBduration\fR, \fBn_packets\fR, or +\fBn_bytes\fR are ignored to allow output from the \fBdump\-flows\fR +command to be used as input for other commands that parse flows. +. +.PP +The \fBadd\-flow\fR, \fBadd\-flows\fR, and \fBmod\-flows\fR commands +require an additional field, which must be the final field specified: . .IP \fBactions=\fR[\fItarget\fR][\fB,\fItarget\fR...]\fR Specifies a comma-separated list of actions to take on a packet when the @@ -514,8 +600,10 @@ omitted, then the entire packet is sent. . .IP \fBlocal\fR Outputs the packet on the ``local port,'' which corresponds to the -\fBof\fIn\fR network device (see \fBCONTACTING THE CONTROLLER\fR in -\fBovs\-openflowd\fR(8) for information on the \fBof\fIn\fR network device). +network device that has the same name as the bridge. +. +.IP \fBin_port\fR +Outputs the packet on the port from which it was received. . .IP \fBdrop\fR Discards the packet, so no further processing or forwarding takes place. @@ -567,10 +655,16 @@ 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 @@ -581,16 +675,6 @@ 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 Open vSwitch 1.1 or later. . -.IP \fBdrop_spoofed_arp\fR -Stops processing further actions, if the packet being processed is an -Ethernet+IPv4 ARP packet for which the source Ethernet address inside -the ARP packet differs from the source Ethernet address in the -Ethernet header. -.IP -This action is deprecated in favor of defining flows using the -\fBarp_sha\fR match field described earlier and will likely be removed -in a future version of Open vSwitch. -. .IP \fBset_queue\fB:\fIqueue\fR Sets the queue that should be used to \fIqueue\fR when packets are output. The number of supported queues depends on the switch; some @@ -633,7 +717,7 @@ Hashes \fIfields\fR using \fIbasis\fR as a universal hash parameter, then the applies multipath link selection \fIalgorithm\fR (with parameter \fIarg\fR) to choose one of \fIn_links\fR output links numbered 0 through \fIn_links\fR minus 1, and stores the link into -\fIdst\fB[\fIstart\fB..\fIend\fB]\fR, which must be an NXM register as +\fIdst\fB[\fIstart\fB..\fIend\fB]\fR, which must be an NXM field as described above. .IP Currently, \fIfields\fR must be either \fBeth_src\fR or @@ -642,6 +726,48 @@ Currently, \fIfields\fR must be either \fBeth_src\fR or the \fBiter_hash\fR algorithm uses \fIarg\fR. .IP Refer to \fBnicira\-ext.h\fR for more details. +. +.IP "\fBautopath(\fIid\fB, \fIdst\fB[\fIstart\fB..\fIend\fB])\fR" +Given \fIid\fR, chooses an OpenFlow port and populates it in +\fIdst\fB[\fIstart\fB..\fIend\fB]\fR, which must be an NXM field as +described above. +.IP +Currently, \fIid\fR should be the OpenFlow port number of an interface on the +bridge. If it isn't then \fIdst\fB[\fIstart\fB..\fIend\fB]\fR will be +populated with the OpenFlow port "none". If \fIid\fR is a member of a bond, +the normal bond selection logic will be used to choose the destination port. +Otherwise, the register will be populated with \fIid\fR itself. +.IP +Refer to \fBnicira\-ext.h\fR for more details. +. +.IP "\fBbundle(\fIfields\fB, \fIbasis\fB, \fIalgorithm\fB, \fIslave_type\fB, slaves:[\fIs1\fB, \fIs2\fB, ...])\fR" +Hashes \fIfields\fR using \fIbasis\fR as a universal hash parameter, then +applies the bundle link selection \fIalgorithm\fR to choose one of the listed +slaves represented as \fIslave_type\fR. Currently the only supported +\fIslave_type\fR is \fBofport\fR. Thus, each \fIs1\fR through \fIsN\fR should +be an OpenFlow port number. Outputs to the selected slave. +.IP +Currently, \fIfields\fR must be either \fBeth_src\fR or \fBsymmetric_l4\fR and +\fIalgorithm\fR must be one of \fBhrw\fR and \fBactive_backup\fR. +.IP +Example: \fBbundle(eth_src,0,hrw,ofport,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. +.IP +Refer to \fBnicira\-ext.h\fR for more details. +. +.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 +Refer to \fBnicira\-ext.h\fR for more details. .RE . .IP @@ -656,14 +782,15 @@ support an additional optional field: . A cookie is an opaque identifier that can be associated with the flow. \fIvalue\fR can be any 64-bit number and need not be unique among -flows. +flows. If this field is omitted, these commands set a default cookie +value of 0. . .PP The following additional field sets the priority for flows added by the \fBadd\-flow\fR and \fBadd\-flows\fR commands. For \fBmod\-flows\fR and \fBdel\-flows\fR when \fB\-\-strict\fR is specified, priority must match along with the rest of the flow -specification. Other commands ignore the priority value. +specification. Other commands do not allow priority to be specified. . .IP \fBpriority=\fIvalue\fR The priority at which a wildcarded entry will match in comparison to @@ -696,18 +823,6 @@ and \fBdel\-flows\fR commands support one additional optional field: \fBout_port=\fIport\fR If set, a matching flow must include an output action to \fIport\fR. . -.PP -The \fBdump\-flows\fR and \fBdump\-aggregate\fR commands support an -additional optional field: -. -.IP \fBtable=\fInumber\fR -If specified, limits the flows about which statistics are gathered to -those in the table with the given \fInumber\fR. Tables are numbered -as shown by the \fBdump\-tables\fR command. -. -If this field is not specified, or if \fInumber\fR is given as -\fB255\fR, statistics are gathered about flows from all tables. -. .SS "Table Entry Output" . The \fBdump\-tables\fR and \fBdump\-aggregate\fR commands print information @@ -751,11 +866,6 @@ increasing capability: This is the standard OpenFlow 1.0 flow format. It should be supported by all OpenFlow switches. . -.IP "\fBtun_id_from_cookie\fR" -This Nicira extension to OpenFlow adds minimal and limited support for -\fBtun_id\fR, but it does not support any other Nicira flow -extensions. (This flow format is deprecated.) -. .IP "\fBnxm\fR (Nicira Extended Match)" This Nicira extension to OpenFlow is flexible and extensible. It supports all of the Nicira flow extensions, such as \fBtun_id\fR and @@ -786,19 +896,16 @@ increase verbosity further. . .SH EXAMPLES . -The following examples assume that an OpenFlow switch on the local -host has been configured to listen for management connections on a -Unix domain socket named \fB@RUNDIR@/openflow.sock\fR, e.g. by -specifying \fB\-\-listen=punix:@RUNDIR@/openflow.sock\fR on the -\fBovs\-openflowd\fR(8) command line. +The following examples assume that \fBovs\-vswitchd\fR has a bridge +named \fBbr0\fR configured. . .TP -\fBovs\-ofctl dump\-tables unix:@RUNDIR@/openflow.sock\fR +\fBovs\-ofctl dump\-tables br0\fR Prints out the switch's table stats. (This is more interesting after some traffic has passed through.) . .TP -\fBovs\-ofctl dump\-flows unix:@RUNDIR@/openflow.sock\fR +\fBovs\-ofctl dump\-flows br0\fR Prints the flow entries in the switch. . .SH "SEE ALSO"