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