]> git.proxmox.com Git - ovs.git/blame - utilities/ovs-ofctl.8.in
daemon: Clarify documentation.
[ovs.git] / utilities / ovs-ofctl.8.in
CommitLineData
a9b4a41a
BP
1.\" -*- nroff -*-
2.de IQ
3. br
4. ns
5. IP "\\$1"
6..
834377ea 7.TH ovs\-ofctl 8 "January 2010" "Open vSwitch" "Open vSwitch Manual"
064af421 8.ds PN ovs\-ofctl
a9b4a41a 9.
064af421
BP
10.SH NAME
11ovs\-ofctl \- administer OpenFlow switches
a9b4a41a 12.
064af421
BP
13.SH SYNOPSIS
14.B ovs\-ofctl
15[\fIoptions\fR] \fIcommand \fR[\fIswitch\fR] [\fIargs\fR\&...]
a9b4a41a 16.
064af421
BP
17.SH DESCRIPTION
18The
19.B ovs\-ofctl
20program is a command line tool for monitoring and administering
21OpenFlow switches. It can also show the current state of an OpenFlow
22switch, including features, configuration, and table entries.
a9b4a41a 23.
064af421 24.SS "OpenFlow Switch Management Commands"
a9b4a41a 25.PP
064af421
BP
26These commands allow \fBovs\-ofctl\fR to monitor and administer an OpenFlow
27switch. It is able to show the current state of a switch, including
28features, configuration, and table entries.
a9b4a41a 29.PP
064af421
BP
30Most of these commands take an argument that specifies the method for
31connecting to an OpenFlow switch. The following connection methods
32are supported:
a9b4a41a 33.
064af421 34.RS
84ee7bcf
BP
35.so lib/vconn-active.man
36.
064af421
BP
37.IP "\fIfile\fR"
38This is short for \fBunix:\fIfile\fR, as long as \fIfile\fR does not
39contain a colon.
84ee7bcf 40.
1a6f1e2a
JG
41.IP \fIbridge\fR
42This is short for \fBunix:@RUNDIR@/\fIbridge\fB.mgmt\fR, as long as
43\fIbridge\fR does not contain a colon.
44.
45.IP [\fItype\fB@\fR]\fIdp\fR
46Attempts to look up the bridge associated with \fIdp\fR and open as
47above. If \fItype\fR is given, it specifies the datapath provider of
48\fIdp\fR, otherwise the default provider \fBsystem\fR is assumed.
064af421 49.RE
a9b4a41a 50.
064af421
BP
51.TP
52\fBshow \fIswitch\fR
53Prints to the console information on \fIswitch\fR, including
54information on its flow tables and ports.
a9b4a41a 55.
064af421
BP
56.TP
57\fBstatus \fIswitch\fR [\fIkey\fR]
58Prints to the console a series of key-value pairs that report the
59status of \fIswitch\fR. If \fIkey\fR is specified, only the key-value
60pairs whose key names begin with \fIkey\fR are printed. If \fIkey\fR is
61omitted, all key-value pairs are printed.
a9b4a41a 62.
064af421
BP
63.TP
64\fBdump-tables \fIswitch\fR
65Prints to the console statistics for each of the flow tables used by
66\fIswitch\fR.
a9b4a41a 67.
064af421 68.TP
abaad8cf
JP
69\fBdump-ports \fIswitch\fR [\fInetdev\fR]
70Prints to the console statistics for network devices associated with
71\fIswitch\fR. If \fInetdev\fR is specified, only the statistics
72associated with that device will be printed. \fInetdev\fR can be an
73OpenFlow assigned port number or device name, e.g. \fBeth0\fR.
a9b4a41a 74.
064af421
BP
75.TP
76\fBmod-port \fIswitch\fR \fInetdev\fR \fIaction\fR
77Modify characteristics of an interface monitored by \fIswitch\fR.
78\fInetdev\fR can be referred to by its OpenFlow assigned port number or
79the device name, e.g. \fBeth0\fR. The \fIaction\fR may be any one of the
80following:
a9b4a41a 81.
064af421
BP
82.RS
83.IP \fBup\fR
84Enables the interface. This is equivalent to ``ifconfig up'' on a Unix
85system.
a9b4a41a 86.
064af421
BP
87.IP \fBdown\fR
88Disables the interface. This is equivalent to ``ifconfig down'' on a Unix
89system.
a9b4a41a 90.
064af421
BP
91.IP \fBflood\fR
92When a \fIflood\fR action is specified, traffic will be sent out this
93interface. This is the default posture for monitored ports.
a9b4a41a 94.
064af421
BP
95.IP \fBnoflood\fR
96When a \fIflood\fR action is specified, traffic will not be sent out
97this interface. This is primarily useful to prevent loops when a
98spanning tree protocol is not in use.
a9b4a41a 99.
064af421 100.RE
a9b4a41a 101.
064af421
BP
102.TP
103\fBdump-flows \fIswitch \fR[\fIflows\fR]
104Prints to the console all flow entries in \fIswitch\fR's
105tables that match \fIflows\fR. If \fIflows\fR is omitted, all flows
106in the switch are retrieved. See \fBFlow Syntax\fR, below, for the
107syntax of \fIflows\fR. The output format is described in
108\fBTable Entry Output\fR.
a9b4a41a 109.
064af421
BP
110.TP
111\fBdump-aggregate \fIswitch \fR[\fIflows\fR]
112Prints to the console aggregate statistics for flows in
113\fIswitch\fR's tables that match \fIflows\fR. If \fIflows\fR is omitted,
114the statistics are aggregated across all flows in the switch's flow
115tables. See \fBFlow Syntax\fR, below, for the syntax of \fIflows\fR.
116The output format is descrbed in \fBTable Entry Output\fR.
a9b4a41a 117.
064af421
BP
118.TP
119\fBadd-flow \fIswitch flow\fR
120Add the flow entry as described by \fIflow\fR to the \fIswitch\fR's
121tables. The flow entry is in the format described in \fBFlow Syntax\fR,
122below.
a9b4a41a 123.
064af421
BP
124.TP
125\fBadd-flows \fIswitch file\fR
126Add flow entries as described in \fIfile\fR to \fIswitch\fR's
127tables. Each line in \fIfile\fR is a flow entry in the format
128described in \fBFlow Syntax\fR, below.
a9b4a41a 129.
064af421
BP
130.TP
131\fBmod-flows \fIswitch flow\fR
132Modify the actions in entries from the \fIswitch\fR's tables
133that match \fIflow\fR. When invoked with the \fB--strict\fR option,
134wildcards are not treated as active for matching purposes. See
135\fBFlow Syntax\fR, below, for the syntax of \fIflows\fR.
a9b4a41a 136.
064af421
BP
137.TP
138\fBdel-flows \fIswitch \fR[\fIflow\fR]
139Deletes entries from the \fIswitch\fR's tables that match
140\fIflow\fR. When invoked with the \fB--strict\fR option, wildcards are
141not treated as active for matching purposes. If \fIflow\fR is
142omitted and the \fB--strict\fR option is not used, all flows in the
143switch's tables are removed. See \fBFlow Syntax\fR, below, for the
144syntax of \fIflows\fR.
a9b4a41a 145.
0caf6bde
BP
146.IP "\fBsnoop \fIswitch\fR"
147Connects to \fIswitch\fR and prints to the console all OpenFlow
148messages received. Unlike other \fBovs\-ofctl\fR commands, if
149\fIswitch\fR is the name of a bridge, then the \fBsnoop\fR command
150connects to a Unix domain socket named
151\fB@RUNDIR@/\fIbridge\fB.snoop\fR. \fBovs\-vswitchd\fR listens on
152such a socket for each bridge and sends to it all of the OpenFlow
153messages sent to or received from its configured OpenFlow controller.
154Thus, this command can be used to view OpenFlow protocol activity
155between a switch and its controller.
156.IP
157When a switch has more than one controller configured, only the
e2bfacb6
BP
158traffic to and from a single controller is output. If none of the
159controllers is configured as a master or a slave (using a Nicira
160extension to OpenFlow), then a controller is chosen arbitrarily among
161them. If there is a master controller, it is chosen; otherwise, if
162there are any controllers that are not masters or slaves, one is
163chosen arbitrarily; otherwise, a slave controller is chosen
164arbitrarily. This choice is made once at connection time and does not
165change as controllers reconfigure their roles.
166.IP
167If a switch has no controller configured, or if
0caf6bde
BP
168the configured controller is disconnected, no traffic is sent, so
169monitoring will not show any traffic.
170.
171.IQ "\fBmonitor \fIswitch\fR [\fImiss-len\fR]"
064af421
BP
172Connects to \fIswitch\fR and prints to the console all OpenFlow
173messages received. Usually, \fIswitch\fR should specify a connection
8cd4882f 174named on \fBovs\-openflowd\fR(8)'s \fB-l\fR or \fB--listen\fR command line
064af421 175option.
a9b4a41a 176.IP
064af421
BP
177If \fImiss-len\fR is provided, \fBovs\-ofctl\fR sends an OpenFlow ``set
178configuration'' message at connection setup time that requests
0caf6bde
BP
179\fImiss-len\fR bytes of each packet that misses the flow table. Open vSwitch
180does not send these and other asynchronous messages to an
064af421 181\fBovs\-ofctl monitor\fR client connection unless a nonzero value is
0caf6bde
BP
182specified on this argument. (Thus, if \fImiss\-len\fR is not
183specified, very little traffic will ordinarily be printed.)
a9b4a41a 184.IP
064af421
BP
185This command may be useful for debugging switch or controller
186implementations.
a9b4a41a 187.
064af421 188.SS "OpenFlow Switch and Controller Commands"
a9b4a41a 189.
064af421
BP
190The following commands, like those in the previous section, may be
191applied to OpenFlow switches, using any of the connection methods
192described in that section. Unlike those commands, these may also be
193applied to OpenFlow controllers.
a9b4a41a 194.
064af421
BP
195.TP
196\fBprobe \fItarget\fR
197Sends a single OpenFlow echo-request message to \fItarget\fR and waits
198for the response. With the \fB-t\fR or \fB--timeout\fR option, this
199command can test whether an OpenFlow switch or controller is up and
200running.
a9b4a41a 201.
064af421
BP
202.TP
203\fBping \fItarget \fR[\fIn\fR]
204Sends a series of 10 echo request packets to \fItarget\fR and times
205each reply. The echo request packets consist of an OpenFlow header
206plus \fIn\fR bytes (default: 64) of randomly generated payload. This
207measures the latency of individual requests.
a9b4a41a 208.
064af421
BP
209.TP
210\fBbenchmark \fItarget n count\fR
211Sends \fIcount\fR echo request packets that each consist of an
212OpenFlow header plus \fIn\fR bytes of payload and waits for each
213response. Reports the total time required. This is a measure of the
214maximum bandwidth to \fItarget\fR for round-trips of \fIn\fR-byte
215messages.
a9b4a41a 216.
064af421 217.SS "Flow Syntax"
a9b4a41a 218.PP
064af421
BP
219Some \fBovs\-ofctl\fR commands accept an argument that describes a flow or
220flows. Such flow descriptions comprise a series
221\fIfield\fB=\fIvalue\fR assignments, separated by commas or white
222space. (Embedding spaces into a flow description normally requires
223quoting to prevent the shell from breaking the description into
224multiple arguments.)
a9b4a41a 225.PP
0b3f2725
BP
226Flow descriptions should be in \fBnormal form\fR. This means that a
227flow may only specify a value for an L3 field if it also specifies a
228particular L2 protocol, and that a flow may only specify an L4 field
229if it also specifies particular L2 and L3 protocol types. For
230example, if the L2 protocol type \fBdl_type\fR is wildcarded, then L3
231fields \fBnw_src\fR, \fBnw_dst\fR, and \fBnw_proto\fR must also be
232wildcarded. Similarly, if \fBdl_type\fR or \fBnw_proto\fR (the L3
233protocol type) is wildcarded, so must be \fBtp_dst\fR and
234\fBtp_src\fR, which are L4 fields. \fBovs\-ofctl\fR will warn about
235flows not in normal form.
236.PP
064af421
BP
237The following field assignments describe how a flow matches a packet.
238If any of these assignments is omitted from the flow syntax, the field
239is treated as a wildcard; thus, if all of them are omitted, the
240resulting flow matches all packets. The string \fB*\fR or \fBANY\fR
241may be specified to explicitly mark any of these fields as a wildcard.
242(\fB*\fR should be quoted to protect it from shell expansion.)
a9b4a41a 243.
064af421
BP
244.IP \fBin_port=\fIport_no\fR
245Matches physical port \fIport_no\fR. Switch ports are numbered as
246displayed by \fBovs\-ofctl show\fR.
a9b4a41a 247.
064af421 248.IP \fBdl_vlan=\fIvlan\fR
f30f26be
JP
249Matches IEEE 802.1q Virtual LAN tag \fIvlan\fR. Specify \fB0xffff\fR
250as \fIvlan\fR to match packets that are not tagged with a Virtual LAN;
064af421
BP
251otherwise, specify a number between 0 and 4095, inclusive, as the
25212-bit VLAN ID to match.
a9b4a41a 253.
959a2ecd
JP
254.IP \fBdl_vlan_pcp=\fIpriority\fR
255Matches IEEE 802.1q Priority Code Point (PCP) \fIpriority\fR, which is
256specified as a value between 0 and 7, inclusive. A higher value
257indicates a higher frame priority level.
a9b4a41a 258.
ed951f15
BP
259.IP \fBdl_src=\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fR
260.IQ \fBdl_dst=\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fR
261Matches an Ethernet source (or destination) address specified as 6
262pairs of hexadecimal digits delimited by colons
263(e.g. \fB00:0A:E4:25:6B:B0\fR).
264.
064af421
BP
265.IP \fBdl_type=\fIethertype\fR
266Matches Ethernet protocol type \fIethertype\fR, which is specified as an
267integer between 0 and 65535, inclusive, either in decimal or as a
268hexadecimal number prefixed by \fB0x\fR (e.g. \fB0x0806\fR to match ARP
269packets).
a9b4a41a 270.
064af421 271.IP \fBnw_src=\fIip\fR[\fB/\fInetmask\fR]
ed951f15
BP
272.IQ \fBnw_dst=\fIip\fR[\fB/\fInetmask\fR]
273When \fBdl_type\fR is 0x0800 (possibly via shorthand, e.g. \fBip\fR
274or \fBtcp\fR), matches IPv4 source (or destination) address \fIip\fR,
275which may be specified as an IP address or host name
276(e.g. \fB192.168.1.1\fR or \fBwww.example.com\fR). The optional
277\fInetmask\fR allows restricting a match to an IPv4 address prefix.
278The netmask may be specified as a dotted quad
279(e.g. \fB192.168.1.0/255.255.255.0\fR) or as a CIDR block
064af421 280(e.g. \fB192.168.1.0/24\fR).
ed951f15
BP
281.IP
282When \fBdl_type=0x0806\fR or \fBarp\fR is specified, matches the
283\fBar_spa\fR or \fBar_tpa\fR field, respectively, in ARP packets for
284IPv4 and Ethernet.
285.IP
286When \fBdl_type\fR is wildcarded or set to a value other than 0x0800
0b3f2725
BP
287or 0x0806, the values of \fBnw_src\fR and \fBnw_dst\fR are ignored
288(see \fBFlow Syntax\fR above).
a9b4a41a 289.
064af421 290.IP \fBnw_proto=\fIproto\fR
ed951f15
BP
291When \fBip\fR or \fBdl_type=0x0800\fR is specified, matches IP
292protocol type \fIproto\fR, which is specified as a decimal number
293between 0 and 255, inclusive (e.g. 6 to match TCP packets).
294.IP
295When \fBarp\fR or \fBdl_type=0x0806\fR is specified, matches the lower
2968 bits of the ARP opcode. ARP opcodes greater than 255 are treated as
2970.
298.IP
299When \fBdl_type\fR is wildcarded or set to a value other than 0x0800
0b3f2725
BP
300or 0x0806, the value of \fBnw_proto\fR is ignored (see \fBFlow
301Syntax\fR above).
a9b4a41a 302.
834377ea
JP
303.IP \fBnw_tos=\fItos\fR
304Matches IP ToS/DSCP field \fItos\fR, which is specified as a decimal
305number between 0 and 255, inclusive. Note that the two lower reserved
306bits are ignored for matching purposes.
ed951f15 307.IP
0b3f2725
BP
308The value of \fBnw_proto\fR is ignored unless \fBdl_type=0x0800\fR,
309\fBip\fR, \fBicmp\fR, \fBtcp\fR, or \fBudp\fR is also specified (see
310\fBFlow Syntax\fR above).
a9b4a41a 311.
064af421 312.IP \fBtp_src=\fIport\fR
ed951f15
BP
313.IQ \fBtp_dst=\fIport\fR
314When \fBdl_type\fR and \fBnw_proto\fR specify TCP or UDP, \fBtp_src\fR
315and \fBtp_dst\fR match the UDP or TCP source or destination port
316\fIport\fR, respectively. which is specified as a decimal number
317between 0 and 65535, inclusive (e.g. 80 to match packets originating
064af421 318from a HTTP server).
ed951f15
BP
319.IP
320When \fBdl_type\fR and \fBnw_proto\fR take other values, the values of
0b3f2725 321these settings are ignored (see \fBFlow Syntax\fR above).
a9b4a41a 322.
064af421 323.IP \fBicmp_type=\fItype\fR
ed951f15
BP
324.IQ \fBicmp_code=\fIcode\fR
325When \fBdl_type\fR and \fBnw_proto\fR specify ICMP, \fItype\fR matches
326the ICMP type and \fIcode\fR matches the ICMP code. Each is specified
327as a decimal number between 0 and 255, inclusive.
328.IP
329When \fBdl_type\fR and \fBnw_proto\fR take other values, the values of
0b3f2725 330these settings are ignored (see \fBFlow Syntax\fR above).
a9b4a41a 331.
064af421
BP
332.PP
333The following shorthand notations are also available:
a9b4a41a 334.
064af421
BP
335.IP \fBip\fR
336Same as \fBdl_type=0x0800\fR.
a9b4a41a 337.
064af421
BP
338.IP \fBicmp\fR
339Same as \fBdl_type=0x0800,nw_proto=1\fR.
a9b4a41a 340.
064af421
BP
341.IP \fBtcp\fR
342Same as \fBdl_type=0x0800,nw_proto=6\fR.
a9b4a41a 343.
064af421
BP
344.IP \fBudp\fR
345Same as \fBdl_type=0x0800,nw_proto=17\fR.
a9b4a41a 346.
064af421
BP
347.IP \fBarp\fR
348Same as \fBdl_type=0x0806\fR.
a9b4a41a 349.
064af421 350.PP
537eeb9c
BP
351The \fBadd-flow\fR and \fBadd-flows\fR commands require an additional
352field, which must be the final field specified:
a9b4a41a 353.
064af421
BP
354.IP \fBactions=\fR[\fItarget\fR][\fB,\fItarget\fR...]\fR
355Specifies a comma-separated list of actions to take on a packet when the
356flow entry matches. If no \fItarget\fR is specified, then packets
357matching the flow are dropped. The \fItarget\fR may be a decimal port
358number designating the physical port on which to output the packet, or one
359of the following keywords:
a9b4a41a 360.
064af421
BP
361.RS
362.IP \fBoutput\fR:\fIport\fR
363Outputs the packet on the port specified by \fIport\fR.
a9b4a41a 364.
064af421
BP
365.IP \fBnormal\fR
366Subjects the packet to the device's normal L2/L3 processing. (This
367action is not implemented by all OpenFlow switches.)
a9b4a41a 368.
064af421
BP
369.IP \fBflood\fR
370Outputs the packet on all switch physical ports other than the port on
371which it was received and any ports on which flooding is disabled
372(typically, these would be ports disabled by the IEEE 802.1D spanning
373tree protocol).
a9b4a41a 374.
064af421
BP
375.IP \fBall\fR
376Outputs the packet on all switch physical ports other than the port on
377which it was received.
a9b4a41a 378.
064af421
BP
379.IP \fBcontroller\fR:\fImax_len\fR
380Sends the packet to the OpenFlow controller as a ``packet in''
381message. If \fImax_len\fR is a number, then it specifies the maximum
382number of bytes that should be sent. If \fImax_len\fR is \fBALL\fR or
383omitted, then the entire packet is sent.
a9b4a41a 384.
064af421
BP
385.IP \fBlocal\fR
386Outputs the packet on the ``local port,'' which corresponds to the
387\fBof\fIn\fR network device (see \fBCONTACTING THE CONTROLLER\fR in
8cd4882f 388\fBovs\-openflowd\fR(8) for information on the \fBof\fIn\fR network device).
a9b4a41a 389.
064af421
BP
390.IP \fBdrop\fR
391Discards the packet, so no further processing or forwarding takes place.
392If a drop action is used, no other actions may be specified.
a9b4a41a 393.
064af421
BP
394.IP \fBmod_vlan_vid\fR:\fIvlan_vid\fR
395Modifies the VLAN id on a packet. The VLAN tag is added or modified
396as necessary to match the value specified. If the VLAN tag is added,
397a priority of zero is used (see the \fBmod_vlan_pcp\fR action to set
398this).
a9b4a41a 399.
064af421
BP
400.IP \fBmod_vlan_pcp\fR:\fIvlan_pcp\fR
401Modifies the VLAN priority on a packet. The VLAN tag is added or modified
402as necessary to match the value specified. Valid values are between 0
403(lowest) and 7 (highest). If the VLAN tag is added, a vid of zero is used
404(see the \fBmod_vlan_vid\fR action to set this).
a9b4a41a 405.
064af421
BP
406.IP \fBstrip_vlan\fR
407Strips the VLAN tag from a packet if it is present.
a9b4a41a 408.
064af421
BP
409.IP \fBmod_dl_src\fB:\fImac\fR
410Sets the source Ethernet address to \fImac\fR.
a9b4a41a 411.
064af421
BP
412.IP \fBmod_dl_dst\fB:\fImac\fR
413Sets the destination Ethernet address to \fImac\fR.
a9b4a41a 414.
e423eca6
JP
415.IP \fBmod_nw_src\fB:\fIip\fR
416Sets the IPv4 source address to \fIip\fR.
a9b4a41a 417.
e423eca6
JP
418.IP \fBmod_nw_dst\fB:\fIip\fR
419Sets the IPv4 destination address to \fIip\fR.
a9b4a41a 420.
e423eca6
JP
421.IP \fBmod_tp_src\fB:\fIport\fR
422Sets the TCP or UDP source port to \fIport\fR.
a9b4a41a 423.
e423eca6
JP
424.IP \fBmod_tp_dst\fB:\fIport\fR
425Sets the TCP or UDP destination port to \fIport\fR.
a9b4a41a 426.
959a2ecd
JP
427.IP \fBmod_nw_tos\fB:\fItos\fR
428Sets the IP ToS/DSCP field to \fItos\fR. Valid values are between 0 and
429255, inclusive. Note that the two lower reserved bits are never
430modified.
a9b4a41a 431.
659586ef
JG
432.RE
433.IP
434The following actions are Nicira vendor extensions that, as of this writing, are
435only known to be implemented by Open vSwitch:
436.
437.RS
438.
3a2fe1f3
BP
439.IP \fBresubmit\fB:\fIport\fR
440Re-searches the OpenFlow flow table with the \fBin_port\fR field
441replaced by \fIport\fR and executes the actions found, if any, in
442addition to any other actions in this flow entry. Recursive
443\fBresubmit\fR actions are ignored.
659586ef
JG
444.
445.IP \fBset_tunnel\fB:\fIid\fR
446If outputting to a port that encapsulates the packet in a tunnel and supports
447an identifier (such as GRE), sets the identifier to \fBid\fR.
3a2fe1f3 448.
064af421 449.RE
a9b4a41a 450.
064af421
BP
451.IP
452(The OpenFlow protocol supports other actions that \fBovs\-ofctl\fR does
453not yet expose to the user.)
a9b4a41a 454.
064af421 455.PP
8cce2125
JP
456The \fBadd\-flow\fR, \fBadd\-flows\fR, and \fBmod\-flows\fR commands
457support an additional optional field:
458.
459.IP \fBcookie=\fIvalue\fR
460.
461A cookie is an opaque identifier that can be associated with the flow.
462\fIvalue\fR can be any 64-bit number and need not be unique among
463flows.
464.
465.PP
064af421
BP
466The \fBadd-flow\fR, \fBadd-flows\fR, and \fBdel-flows\fR commands
467support an additional optional field:
a9b4a41a 468.
064af421
BP
469.IP \fBpriority=\fIvalue\fR
470The priority at which a wildcarded entry will match in comparison to
471others. \fIvalue\fR is a number between 0 and 65535, inclusive. A higher
472\fIvalue\fR will match before a lower one. An exact-match entry will always
473have priority over an entry containing wildcards, so it has an implicit
474priority value of 65535. When adding a flow, if the field is not specified,
475the flow's priority will default to 32768.
a9b4a41a 476.
064af421
BP
477.PP
478The \fBadd-flow\fR and \fBadd-flows\fR commands support additional
479optional fields:
a9b4a41a 480.
064af421
BP
481.TP
482\fBidle_timeout=\fIseconds\fR
483Causes the flow to expire after the given number of seconds of
484inactivity. A value of 0 prevents a flow from expiring due to
485inactivity. The default is 60 seconds.
a9b4a41a 486.
064af421
BP
487.IP \fBhard_timeout=\fIseconds\fR
488Causes the flow to expire after the given number of seconds,
489regardless of activity. A value of 0 (the default) gives the flow no
490hard expiration deadline.
a9b4a41a 491.
064af421
BP
492.PP
493The \fBdump-flows\fR, \fBdump-aggregate\fR, \fBdel-flow\fR
494and \fBdel-flows\fR commands support one additional optional field:
a9b4a41a 495.
064af421
BP
496.TP
497\fBout_port=\fIport\fR
498If set, a matching flow must include an output action to \fIport\fR.
a9b4a41a 499.
064af421
BP
500.PP
501The \fBdump-flows\fR and \fBdump-aggregate\fR commands support an
502additional optional field:
a9b4a41a 503.
064af421
BP
504.IP \fBtable=\fInumber\fR
505If specified, limits the flows about which statistics are gathered to
506those in the table with the given \fInumber\fR. Tables are numbered
507as shown by the \fBdump-tables\fR command.
a9b4a41a 508.
064af421
BP
509If this field is not specified, or if \fInumber\fR is given as
510\fB255\fR, statistics are gathered about flows from all tables.
a9b4a41a 511.
064af421 512.SS "Table Entry Output"
a9b4a41a 513.
064af421
BP
514The \fBdump-tables\fR and \fBdump-aggregate\fR commands print information
515about the entries in a datapath's tables. Each line of output is a
516unique flow entry, which begins with some common information:
a9b4a41a 517.
064af421
BP
518.IP \fBduration\fR
519The number of seconds the entry has been in the table.
a9b4a41a 520.
064af421
BP
521.IP \fBtable_id\fR
522The table that contains the flow. When a packet arrives, the switch
523begins searching for an entry at the lowest numbered table. Tables are
524numbered as shown by the \fBdump-tables\fR command.
a9b4a41a 525.
064af421
BP
526.IP \fBpriority\fR
527The priority of the entry in relation to other entries within the same
528table. A higher value will match before a lower one.
a9b4a41a 529.
064af421
BP
530.IP \fBn_packets\fR
531The number of packets that have matched the entry.
a9b4a41a 532.
064af421
BP
533.IP \fBn_bytes\fR
534The total number of bytes from packets that have matched the entry.
a9b4a41a 535.
064af421
BP
536.PP
537The rest of the line consists of a description of the flow entry as
538described in \fBFlow Syntax\fR, above.
a9b4a41a
BP
539.
540.
064af421
BP
541.SH OPTIONS
542.TP
543\fB--strict\fR
544Uses strict matching when running flow modification commands.
a9b4a41a 545.
ac300505 546.SS "Public Key Infrastructure Options"
84ee7bcf 547.so lib/ssl.man
064af421
BP
548.so lib/vlog.man
549.so lib/common.man
a9b4a41a 550.
064af421 551.SH EXAMPLES
a9b4a41a 552.
064af421
BP
553The following examples assume that an OpenFlow switch on the local
554host has been configured to listen for management connections on a
555Unix domain socket named \fB@RUNDIR@/openflow.sock\fR, e.g. by
556specifying \fB--listen=punix:@RUNDIR@/openflow.sock\fR on the
8cd4882f 557\fBovs\-openflowd\fR(8) command line.
a9b4a41a 558.
064af421
BP
559.TP
560\fBovs\-ofctl dump-tables unix:@RUNDIR@/openflow.sock\fR
561Prints out the switch's table stats. (This is more interesting after
562some traffic has passed through.)
a9b4a41a 563.
064af421
BP
564.TP
565\fBovs\-ofctl dump-flows unix:@RUNDIR@/openflow.sock\fR
566Prints the flow entries in the switch.
a9b4a41a 567.
064af421 568.SH "SEE ALSO"
a9b4a41a 569.
064af421
BP
570.BR ovs\-appctl (8),
571.BR ovs\-controller (8),
572.BR ovs\-vswitchd (8)