]> git.proxmox.com Git - mirror_ovs.git/blame - utilities/ovs-ofctl.8.in
Properly print drop_spoofed_arp actions when decoding OpenFlow and ODP.
[mirror_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 63.TP
4e312e69 64\fBdump\-tables \fIswitch\fR
064af421
BP
65Prints to the console statistics for each of the flow tables used by
66\fIswitch\fR.
a9b4a41a 67.
064af421 68.TP
4e312e69 69\fBdump\-ports \fIswitch\fR [\fInetdev\fR]
abaad8cf
JP
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 75.TP
4e312e69 76\fBmod\-port \fIswitch\fR \fInetdev\fR \fIaction\fR
064af421
BP
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 102.TP
4e312e69 103\fBdump\-flows \fIswitch \fR[\fIflows\fR]
064af421
BP
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 110.TP
4e312e69 111\fBdump\-aggregate \fIswitch \fR[\fIflows\fR]
064af421
BP
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 118.TP
4e312e69 119\fBadd\-flow \fIswitch flow\fR
064af421
BP
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 124.TP
4e312e69 125\fBadd\-flows \fIswitch file\fR
064af421
BP
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 130.TP
4e312e69 131\fBmod\-flows \fIswitch flow\fR
064af421 132Modify the actions in entries from the \fIswitch\fR's tables
4e312e69 133that match \fIflow\fR. When invoked with the \fB\-\-strict\fR option,
064af421
BP
134wildcards are not treated as active for matching purposes. See
135\fBFlow Syntax\fR, below, for the syntax of \fIflows\fR.
a9b4a41a 136.
064af421 137.TP
4e312e69 138\fBdel\-flows \fIswitch \fR[\fIflow\fR]
064af421 139Deletes entries from the \fIswitch\fR's tables that match
4e312e69 140\fIflow\fR. When invoked with the \fB\-\-strict\fR option, wildcards are
064af421 141not treated as active for matching purposes. If \fIflow\fR is
4e312e69 142omitted and the \fB\-\-strict\fR option is not used, all flows in the
064af421
BP
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
4e312e69 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
4e312e69 198for the response. With the \fB\-t\fR or \fB\-\-timeout\fR option, this
064af421
BP
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
4e312e69 351The \fBadd\-flow\fR and \fBadd\-flows\fR commands require an additional
537eeb9c 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.
5682f723
BP
365.IP \fBenqueue\fR:\fIport\fB:\fIqueue\fR
366Enqueues the packet on the specified \fIqueue\fR within port
367\fIport\fR. The number of supported queues depends on the switch;
368some OpenFlow implementations do not support queuing at all.
369.
064af421
BP
370.IP \fBnormal\fR
371Subjects the packet to the device's normal L2/L3 processing. (This
372action is not implemented by all OpenFlow switches.)
a9b4a41a 373.
064af421
BP
374.IP \fBflood\fR
375Outputs the packet on all switch physical ports other than the port on
376which it was received and any ports on which flooding is disabled
377(typically, these would be ports disabled by the IEEE 802.1D spanning
378tree protocol).
a9b4a41a 379.
064af421
BP
380.IP \fBall\fR
381Outputs the packet on all switch physical ports other than the port on
382which it was received.
a9b4a41a 383.
064af421
BP
384.IP \fBcontroller\fR:\fImax_len\fR
385Sends the packet to the OpenFlow controller as a ``packet in''
386message. If \fImax_len\fR is a number, then it specifies the maximum
387number of bytes that should be sent. If \fImax_len\fR is \fBALL\fR or
388omitted, then the entire packet is sent.
a9b4a41a 389.
064af421
BP
390.IP \fBlocal\fR
391Outputs the packet on the ``local port,'' which corresponds to the
392\fBof\fIn\fR network device (see \fBCONTACTING THE CONTROLLER\fR in
8cd4882f 393\fBovs\-openflowd\fR(8) for information on the \fBof\fIn\fR network device).
a9b4a41a 394.
064af421
BP
395.IP \fBdrop\fR
396Discards the packet, so no further processing or forwarding takes place.
397If a drop action is used, no other actions may be specified.
a9b4a41a 398.
064af421
BP
399.IP \fBmod_vlan_vid\fR:\fIvlan_vid\fR
400Modifies the VLAN id on a packet. The VLAN tag is added or modified
401as necessary to match the value specified. If the VLAN tag is added,
402a priority of zero is used (see the \fBmod_vlan_pcp\fR action to set
403this).
a9b4a41a 404.
064af421
BP
405.IP \fBmod_vlan_pcp\fR:\fIvlan_pcp\fR
406Modifies the VLAN priority on a packet. The VLAN tag is added or modified
407as necessary to match the value specified. Valid values are between 0
408(lowest) and 7 (highest). If the VLAN tag is added, a vid of zero is used
409(see the \fBmod_vlan_vid\fR action to set this).
a9b4a41a 410.
064af421
BP
411.IP \fBstrip_vlan\fR
412Strips the VLAN tag from a packet if it is present.
a9b4a41a 413.
064af421
BP
414.IP \fBmod_dl_src\fB:\fImac\fR
415Sets the source Ethernet address to \fImac\fR.
a9b4a41a 416.
064af421
BP
417.IP \fBmod_dl_dst\fB:\fImac\fR
418Sets the destination Ethernet address to \fImac\fR.
a9b4a41a 419.
e423eca6
JP
420.IP \fBmod_nw_src\fB:\fIip\fR
421Sets the IPv4 source address to \fIip\fR.
a9b4a41a 422.
e423eca6
JP
423.IP \fBmod_nw_dst\fB:\fIip\fR
424Sets the IPv4 destination address to \fIip\fR.
a9b4a41a 425.
e423eca6
JP
426.IP \fBmod_tp_src\fB:\fIport\fR
427Sets the TCP or UDP source port to \fIport\fR.
a9b4a41a 428.
e423eca6
JP
429.IP \fBmod_tp_dst\fB:\fIport\fR
430Sets the TCP or UDP destination port to \fIport\fR.
a9b4a41a 431.
959a2ecd
JP
432.IP \fBmod_nw_tos\fB:\fItos\fR
433Sets the IP ToS/DSCP field to \fItos\fR. Valid values are between 0 and
434255, inclusive. Note that the two lower reserved bits are never
435modified.
a9b4a41a 436.
659586ef
JG
437.RE
438.IP
439The following actions are Nicira vendor extensions that, as of this writing, are
440only known to be implemented by Open vSwitch:
441.
442.RS
443.
3a2fe1f3
BP
444.IP \fBresubmit\fB:\fIport\fR
445Re-searches the OpenFlow flow table with the \fBin_port\fR field
446replaced by \fIport\fR and executes the actions found, if any, in
447addition to any other actions in this flow entry. Recursive
448\fBresubmit\fR actions are ignored.
659586ef
JG
449.
450.IP \fBset_tunnel\fB:\fIid\fR
451If outputting to a port that encapsulates the packet in a tunnel and supports
452an identifier (such as GRE), sets the identifier to \fBid\fR.
3a2fe1f3 453.
933df876
BP
454.IP \fBdrop_spoofed_arp\fR
455Stops processing further actions, if the packet being processed is an
456Ethernet+IPv4 ARP packet for which the source Ethernet address inside
457the ARP packet differs from the source Ethernet address in the
458Ethernet header.
459.
460This is useful because OpenFlow does not provide a way to match on the
461Ethernet addresses inside ARP packets, so there is no other way to
462drop spoofed ARPs other than sending every ARP packet to a controller.
064af421 463.RE
a9b4a41a 464.
064af421
BP
465.IP
466(The OpenFlow protocol supports other actions that \fBovs\-ofctl\fR does
467not yet expose to the user.)
a9b4a41a 468.
064af421 469.PP
8cce2125
JP
470The \fBadd\-flow\fR, \fBadd\-flows\fR, and \fBmod\-flows\fR commands
471support an additional optional field:
472.
473.IP \fBcookie=\fIvalue\fR
474.
475A cookie is an opaque identifier that can be associated with the flow.
476\fIvalue\fR can be any 64-bit number and need not be unique among
477flows.
478.
479.PP
4e312e69 480The \fBadd\-flow\fR, \fBadd\-flows\fR, and \fBdel\-flows\fR commands
064af421 481support an additional optional field:
a9b4a41a 482.
064af421
BP
483.IP \fBpriority=\fIvalue\fR
484The priority at which a wildcarded entry will match in comparison to
485others. \fIvalue\fR is a number between 0 and 65535, inclusive. A higher
486\fIvalue\fR will match before a lower one. An exact-match entry will always
487have priority over an entry containing wildcards, so it has an implicit
488priority value of 65535. When adding a flow, if the field is not specified,
489the flow's priority will default to 32768.
a9b4a41a 490.
064af421 491.PP
4e312e69 492The \fBadd\-flow\fR and \fBadd\-flows\fR commands support additional
064af421 493optional fields:
a9b4a41a 494.
064af421
BP
495.TP
496\fBidle_timeout=\fIseconds\fR
497Causes the flow to expire after the given number of seconds of
498inactivity. A value of 0 prevents a flow from expiring due to
499inactivity. The default is 60 seconds.
a9b4a41a 500.
064af421
BP
501.IP \fBhard_timeout=\fIseconds\fR
502Causes the flow to expire after the given number of seconds,
503regardless of activity. A value of 0 (the default) gives the flow no
504hard expiration deadline.
a9b4a41a 505.
064af421 506.PP
4e312e69
BP
507The \fBdump\-flows\fR, \fBdump\-aggregate\fR, \fBdel\-flow\fR
508and \fBdel\-flows\fR commands support one additional optional field:
a9b4a41a 509.
064af421
BP
510.TP
511\fBout_port=\fIport\fR
512If set, a matching flow must include an output action to \fIport\fR.
a9b4a41a 513.
064af421 514.PP
4e312e69 515The \fBdump\-flows\fR and \fBdump\-aggregate\fR commands support an
064af421 516additional optional field:
a9b4a41a 517.
064af421
BP
518.IP \fBtable=\fInumber\fR
519If specified, limits the flows about which statistics are gathered to
520those in the table with the given \fInumber\fR. Tables are numbered
4e312e69 521as shown by the \fBdump\-tables\fR command.
a9b4a41a 522.
064af421
BP
523If this field is not specified, or if \fInumber\fR is given as
524\fB255\fR, statistics are gathered about flows from all tables.
a9b4a41a 525.
064af421 526.SS "Table Entry Output"
a9b4a41a 527.
4e312e69 528The \fBdump\-tables\fR and \fBdump\-aggregate\fR commands print information
064af421
BP
529about the entries in a datapath's tables. Each line of output is a
530unique flow entry, which begins with some common information:
a9b4a41a 531.
064af421
BP
532.IP \fBduration\fR
533The number of seconds the entry has been in the table.
a9b4a41a 534.
064af421
BP
535.IP \fBtable_id\fR
536The table that contains the flow. When a packet arrives, the switch
537begins searching for an entry at the lowest numbered table. Tables are
4e312e69 538numbered as shown by the \fBdump\-tables\fR command.
a9b4a41a 539.
064af421
BP
540.IP \fBpriority\fR
541The priority of the entry in relation to other entries within the same
542table. A higher value will match before a lower one.
a9b4a41a 543.
064af421
BP
544.IP \fBn_packets\fR
545The number of packets that have matched the entry.
a9b4a41a 546.
064af421
BP
547.IP \fBn_bytes\fR
548The total number of bytes from packets that have matched the entry.
a9b4a41a 549.
064af421
BP
550.PP
551The rest of the line consists of a description of the flow entry as
552described in \fBFlow Syntax\fR, above.
a9b4a41a
BP
553.
554.
064af421
BP
555.SH OPTIONS
556.TP
4e312e69 557\fB\-\-strict\fR
064af421 558Uses strict matching when running flow modification commands.
a9b4a41a 559.
ac300505 560.SS "Public Key Infrastructure Options"
84ee7bcf 561.so lib/ssl.man
064af421
BP
562.so lib/vlog.man
563.so lib/common.man
a9b4a41a 564.
064af421 565.SH EXAMPLES
a9b4a41a 566.
064af421
BP
567The following examples assume that an OpenFlow switch on the local
568host has been configured to listen for management connections on a
569Unix domain socket named \fB@RUNDIR@/openflow.sock\fR, e.g. by
4e312e69 570specifying \fB\-\-listen=punix:@RUNDIR@/openflow.sock\fR on the
8cd4882f 571\fBovs\-openflowd\fR(8) command line.
a9b4a41a 572.
064af421 573.TP
4e312e69 574\fBovs\-ofctl dump\-tables unix:@RUNDIR@/openflow.sock\fR
064af421
BP
575Prints out the switch's table stats. (This is more interesting after
576some traffic has passed through.)
a9b4a41a 577.
064af421 578.TP
4e312e69 579\fBovs\-ofctl dump\-flows unix:@RUNDIR@/openflow.sock\fR
064af421 580Prints the flow entries in the switch.
a9b4a41a 581.
064af421 582.SH "SEE ALSO"
a9b4a41a 583.
064af421
BP
584.BR ovs\-appctl (8),
585.BR ovs\-controller (8),
586.BR ovs\-vswitchd (8)