e1c12f1dff43db21e013d51f36fbf50d8c106dda
[sliver-openvswitch.git] / vswitchd / ovs-vswitchd.conf.5.in
1 .\" -*- nroff -*-
2 .de TQ
3 .  br
4 .  ns
5 .  TP "\\$1"
6 ..
7 .de IQ
8 .  br
9 .  ns
10 .  IP "\\$1"
11 ..
12 .de ST
13 .  PP
14 .  RS -0.15in
15 .  I "\\$1"
16 .  RE
17 .  PP
18 ..
19 .TH ovs\-vswitchd.conf 5 "April 2009" "Open vSwitch" "Open vSwitch Manual"
20 .
21 .SH NAME
22 ovs\-vswitchd.conf \- configuration file for \fBovs\-vswitchd\fR
23 .
24 .SH DESCRIPTION
25 This manual page describes the syntax for the configuration file used 
26 by \fBovs\-vswitchd\fR(8), the virtual switch daemon.
27 .PP
28 The configuration file is based on key-value pairs, which are given
29 one per line in the form \fIkey\fB=\fIvalue\fR.  Each \fIkey\fR
30 consists of one or more parts separated by dots,
31 e.g. \fIpart1\fB.\fIpart2\fB.\fIpart3\fR.  Each \fIpart\fR may consist
32 only of the English letters, digits, and the special characters
33 \fB_-@$:+\fR.  White space within \fIvalue\fR  and at the beginning of a
34 line is significant, but is otherwise ignored.
35 .PP
36 If a single key is specified more than once, that key has multiple
37 values, one value for each time the key is specified.  The ordering of
38 key-value pairs, and the ordering of multiple values for a single key,
39 within a configuration file is not significant.
40 .PP
41 Blank lines, lines that consist only of white space, and lines that
42 begin with \fB#\fR (optionally preceded by white space) are ignored.
43 Keep in mind that programs that modify the configuration file, such as 
44 \fBovs\-brcompatd\fR and \fBovs-cfg-mod\fR, may alter the order of
45 elements and 
46 strip comments and blank lines.
47 .PP
48 The following subsections describe how key-value pairs are used to
49 configure \fBovs\-vswitchd\fR.
50 .SS "Bridge Configuration"
51 A bridge (switch) with a given \fIname\fR is configured by specifying
52 the names of its network devices as values for key
53 \fBbridge.\fIname\fB.port\fR.  (The specified \fIname\fR may not begin
54 with \fBdp\fR or \fBnl:\fR followed by a digit.)
55 .PP
56 The names given on \fBbridge.\fIname\fB.port\fR must be the names of
57 existing network devices, except for ``internal ports.''  An internal
58 port is a simulated network device that receives traffic only
59 through the virtual switch and switches any traffic sent it through
60 virtual switch.  An internal port may configured with an IP address,
61 etc. using the usual system tools (e.g. \fBifconfig\fR, \fBip\fR).  To
62 designate network device \fInetdev\fR as an internal port, add
63 \fBiface.\fInetdev\fB.internal=true\fR to the configuration file.
64 \fBovs\-vswitchd\fR will honor this configuration setting by automatically
65 creating the named internal port.
66 .PP
67 A bridge with a given \fIname\fR always has an internal port with the
68 same \fIname\fR, called the ``local port.''  This network device may
69 be included
70 in the bridge, by specifying it as one of the values for key
71 \fBbridge.\fIname\fB.port\fR, or it may be omitted.  If it is
72 included, then its MAC address is by default the lowest-numbered MAC
73 address among the other bridge ports, ignoring other internal ports
74 and bridge ports that are
75 used as port mirroring destinations (see \fBPort Mirroring\fR, below).
76 For this purpose, the MAC of a bonded port (see \fBNetwork Device
77 Bonding\fR, below) is by default the MAC of its slave whose name is first in
78 alphabetical order.
79 There are two ways to modify this algorithm for selecting the MAC
80 address of the local port:
81 .IP \(bu
82 To use a specific MAC address for the local port, set
83 \fBbridge.\fIname\fB.mac\fR to a MAC address in the format
84 \fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fB:\fIxx\fR, where each
85 \fIx\fR is a hex digit.
86 .IP \(bu
87 To override the MAC of a port for the purpose of this algorithm, set
88 \fBport.\fIport\fB.mac\fR to a MAC address in the format described
89 above.
90 .PP
91 If no valid MAC address can be determined
92 either of these ways, then a MAC address is randomly generated.
93 .PP
94 The following syntax defines a bridge named \fBmybr\fR, configured
95 with network devices \fBeth0\fR, \fBeth1\fR, and \fBeth2\fR:
96 .RS
97 .nf
98
99 bridge.mybr.port=eth0
100 bridge.mybr.port=eth1
101 bridge.mybr.port=eth2
102
103 .fi
104 .RE
105 .SS "802.1Q VLAN support"
106 A bridge port may be configured either as a trunk port or as belonging
107 to a single, untagged VLAN.  These two options are mutually exclusive,
108 and a port must be configured in one way or the other.
109 .ST "Trunk Ports"
110 By default, bridge ports are trunk ports that carry all VLANs.  To
111 limit the VLANs that a trunk port carries, define
112 \fBvlan.\fIport\fB.trunks\fR to one or more integers between 0 and
113 4095 designating VLANs.  Only frames that have an 802.1Q header with
114 one of the listed VLANs are accepted on a trunk port.  If 0 is
115 included in the list, then frames without an 802.1Q header are also
116 accepted.  Other frames are discarded.
117 .PP
118 The following syntax makes network device \fBeth0\fR a trunk port that
119 carries VLANs 1, 2, and 3:
120 .PP
121 .RS
122 .nf
123
124 vlan.eth0.trunks=1
125 vlan.eth0.trunks=2
126 vlan.eth0.trunks=3
127         
128 .fi
129 .RE
130 .ST "Untagged VLAN Ports"
131 A bridge port may be configured with an implicit, untagged VLAN.  
132 Define key
133 \fBvlan.\fIport\fB.tag\fR to an integer value \fIvid\fR between 0 and
134 4095, inclusive, to designate the named \fIport\fR as a member
135 of 802.1Q VLAN \fIvid\fR.  When \fIport\fR is assigned a VLAN tag this
136 way, frames arriving on trunk ports will be forwarded to \fIport\fR
137 only if they are tagged with VLAN \fIvid\fR, and frames arriving on
138 other VLAN ports will be forwarded to \fIport\fR only if their
139 \fIvid\fR values are equal.  Frames forwarded to \fIport\fR will not
140 have an 802.1Q header.
141 .PP
142 When \fIvid\fR is 0, frames arriving on trunk ports without an 802.1Q
143 VLAN header will also be forwarded to \fIport\fR.
144 .PP
145 When a frame with a 802.1Q header that indicates a nonzero VLAN is
146 received on an implicit VLAN port, it is discarded.
147 .PP
148 The following syntax makes network device \fBeth0\fR a member of VLAN
149 101:
150 .PP
151 .RS
152 .nf
153
154 vlan.eth0.tag=101
155         
156 .fi
157 .RE
158 .SS "Network Device Bonding"
159 Bonding allows multiple ``slave'' network devices to be treated as if
160 they were a single virtual ``bonded'' network device.  It is useful for
161 load balancing and fail-over.
162 .PP
163 \fBovs\-vswitchd\fR supports ``source load balancing'' (SLB) bonding, which
164 assigns flows to slaves based on source MAC address, with periodic
165 rebalancing as traffic patterns change.  This form of bonding does not
166 require 802.3ad or other special support from the upstream switch to
167 which the slave devices are connected.
168 .PP
169 To configure bonding, create a virtual bonding device by specifying
170 the slave network device names as values for
171 \fBbonding.\fIname\fB.slave\fR, then specify \fIname\fR as a bridge
172 port.  The chosen \fIname\fR should not be the name of any real
173 network device on the host system.
174 .PP
175 By default, bonding interfaces are enabled or disabled immediately
176 when a carrier is detected or dropped on the underlying network
177 device.  To insert a delay when carrier comes up or goes down before
178 enabling or disabling an interface, set the value of
179 \fBbonding.\fIname\fB.updelay\fR or
180 \fBbonding.\fIname\fB.downdelay\fR, respectively, to a positive
181 integer, interpreted in milliseconds.
182 The \fBupdelay\fR setting is honored only when at least one bonded
183 interface is already enabled.  When no interfaces are enabled, then
184 the first bond interface to come up is enabled immediately.  The
185 \fBdowndelay\fR setting is always honored.
186 .PP
187 The following syntax bonds \fBeth0\fR and \fBeth1\fR into a bonding
188 device named \fBbond0\fR, which is added to bridge \fBmybr\fR along
189 with physical network devices \fBeth2\fR and \fBeth3\fR:
190 .PP
191 .RS
192 .nf
193
194 bridge.mybr.port=bond0
195 bridge.mybr.port=eth2
196 bridge.mybr.port=eth3
197
198 bonding.bond0.slave=eth0
199 bonding.bond0.slave=eth1
200         
201 .fi
202 .RE
203 .SS "Port Mirroring (SPAN and RSPAN)"
204 \fBovs\-vswitchd\fR may be configured to send selected frames to special
205 ``mirrored'' ports, in addition to their normal destinations.  Mirroring
206 traffic may also be referred to as SPAN or RSPAN, depending on the
207 mechanism used for delivery.
208 .PP
209 Up to 32 instances of port mirroring may be configured on a given
210 bridge.  Each must be given a name that is unique within the bridge.
211 The keys associated with port mirroring instance \fIpmname\fR for
212 bridge \fIbrname\fR begin with \fBmirror.\fIbrname\fB.\fIpmname\fR.
213 .PP
214 The selection of the frames to mirror and the form in which they
215 should be output is configured separately for each port mirroring
216 instances, through a subsection of
217 \fBmirror.\fIbrname\fB.\fIpmname\fR, named \fBselect\fR, and
218 \fBoutput\fR, respectively.
219 .ST "Selecting Frames to Mirror"
220 The values for the following keys, if specified, limit the frames that
221 are chosen for mirroring.  If none of these keys is specified, then
222 all frames received by the bridge are mirrored.  If more than one of
223 these keys is specified, then a frame must meet all specified criteria
224 to be mirrored.
225 .TP
226 \fBmirror.\fIbrname\fB.\fIpmname\fB.select.src-port=\fIport\fR
227 .TQ
228 \fBmirror.\fIbrname\fB.\fIpmname\fB.select.dst-port=\fIport\fR
229 .TQ
230 \fBmirror.\fIbrname\fB.\fIpmname\fB.select.port=\fIport\fR
231 Frame received on \fIport\fR, output to \fIport\fR, or either received
232 on or output to \fIport\fR, respectively.  \fIport\fR must be part of
233 the bridge \fIbrname\fR; that is, it must be listed on
234 \fBbridge.\fIbrname\fB.port\fR.
235 .TP
236 \fBmirror.\fIbrname\fB.\fIpmname\fB.select.vlan=\fIvid\fR
237 .
238 \fIvid\fR must be an integer between 0 and 4095, inclusive.  A nonzero
239 \fIvid\fR selects frames that belong to VLAN \fIvid\fR, that is,
240 frames that arrived on a trunk port tagged with VLAN \fIvid\fR or on a
241 port that is configured as part of VLAN \fIvid\fR (see \fB802.1Q VLAN
242 tagging\fR, above).  A \fIvid\fR of zero selects frames that do not
243 belong to a VLAN, that is, frames that arrived on a trunk port without
244 a VLAN tag or tagged with VLAN 0.
245 .ST "Mirror Output"
246 The values of the following keys determine how frames selected for
247 mirroring are output.  Only one of the keys may be specified.
248 .TP
249 \fBmirror.\fIbrname\fB.\fIpmname\fB.output.port=\fIport\fR
250 .
251 Causes the selected frames to be sent out \fIport\fR, which must be
252 part of the bridge \fIbrname\fR; that is, it must be listed on
253 \fBbridge.\fIbrname\fB.port\fR.
254 .IP
255 Specifying a \fIport\fR in this way reserves that port exclusively for
256 mirroring.  No frames other than those selected for mirroring will be
257 forwarded to \fIport\fR, and any frames received on \fIport\fR will be
258 discarded.  This type of mirroring may be referred to as SPAN.
259 .TP
260 \fBmirror.\fIbrname\fB.\fIpmname\fB.output.vlan=\fIvid\fR
261 .
262 Causes the selected frames to be sent on the VLAN numbered \fIvid\fR,
263 which must be an integer between 0 and 4095, inclusive.  The frames
264 will be sent out all ports that trunk VLAN \fIvid\fR, as well as any
265 ports with implicit VLAN \fIvid\fR.  When a mirrored frame is sent out
266 a trunk port, the frame's VLAN tag will be set to \fIvid\fR, replacing
267 any existing tag; when it is sent out an implicit VLAN port, the frame
268 will not be tagged.  This type of mirroring may be referred to as
269 RSPAN.
270 .IP
271 Please note that mirroring to a VLAN can disrupt a network that
272 contains unmanaged switches.  Consider an unmanaged physical switch
273 with two ports: port 1, connected to an end host, and port 2,
274 connected to an Open vSwitch configured to mirror received packets
275 into VLAN 123 on port 2.  Suppose that the end host sends a packet on
276 port 1 that the physical switch forwards to port 2.  The Open vSwitch
277 forwards this packet to its destination and then reflects it back on
278 port 2 in VLAN 123.  This reflected packet causes the unmanaged
279 physical switch to replace the MAC learning table entry, which
280 correctly pointed to port 1, with one that incorrectly points to port
281 2.  Afterward, the physical switch will direct packets destined for
282 the end host to the Open vSwitch on port 2, instead of to the end host
283 on port 1, disrupting connectivity.  If mirroring to a VLAN is desired
284 in this scenario, then the physical switch must be replaced by one
285 that learns Ethernet addresses on a per-VLAN basis.  In addition,
286 learning should be disabled on the VLAN containing mirrored traffic.
287 If this is not done then the intermediate switch will learn the MAC
288 address of each end host from the mirrored traffic.  If packets being
289 sent to that end host are also mirrored, then they will be dropped
290 since the switch will attempt to send them out the input port.
291 Disabling learning for the VLAN will cause the switch to correctly
292 send the packet out all ports configured for that VLAN.
293 .ST "Example"
294 The following \fBovs\-vswitchd\fR configuration copies all frames received
295 on \fBeth1\fR or \fBeth2\fR to \fBeth3\fR.
296 .PP
297 .RS
298 .nf
299
300 bridge.mybr.port=eth1
301 bridge.mybr.port=eth2
302 bridge.mybr.port=eth3
303
304 mirror.mybr.a.select.src-port=eth1
305 mirror.mybr.a.select.src-port=eth2
306 mirror.mybr.a.output.port=eth3
307         
308 .fi
309 .RE
310 .SS "Port Rate-Limiting"
311 Traffic policing and shaping are configured on physical ports.  Policing
312 defines a hard limit at which traffic that exceeds the specified rate is
313 dropped.  Shaping uses queues to delay packets so that egress traffic
314 leaves at the specified rate.
315
316 .ST "Ingress Policing"
317 The rate at which traffic is allowed to enter through a port may be 
318 configured with ingress policing.  Note that "ingress" is from the 
319 perspective of \fBovs\-vswitchd\fR.  If configured on a physical port, 
320 then it limits the rate at which traffic is allowed into the system from 
321 the outside.  If configured on a virtual interface that is connected to 
322 a virtual machine, then it limits the rate at which the guest is able to 
323 transmit.
324
325 The rate is specified in kilobits (1000 bits) per second with a maximum 
326 burst size specified in kilobits (1000 bits).  The burst size should be at 
327 least the size of the interface's MTU.  
328
329 A port may be configured to enforce ingress policing by defining the
330 key \fBport.\fIname\fB.ingress.policing-rate\fR with an integer
331 indicating the rate.  The port \fIname\fR will only allow traffic to be
332 received at the rate specified in kilobits per second.  If the rate is zero 
333 or the key is not defined, then ingress policing is disabled.
334
335 If ingress policing is enabled, then the burst rate may be set by defining 
336 the key \fBport.\fIname\fB.ingress.policing-burst\fR with an integer 
337 indicating the burst rate in kilobits.  If the key is not supplied or is 
338 zero, then the default burst is 10 kilobits.
339
340 .PP
341 The following syntax limits port \fBeth1\fR to receiving traffic at
342 \fB512\fR kilobits per second with a burst of \fB20\fR kilobits:
343 .PP
344 .RS
345 .nf
346
347 port.eth1.ingress.policing-rate=512
348 port.eth1.ingress.policing-burst=20
349
350 .fi
351 .SS "NetFlow v5 Flow Logging"
352 NetFlow is a protocol that exports a number of details about terminating 
353 IP flows, such as the principals involved and duration.  A bridge may be 
354 configured to send NetFlow v5 records to NetFlow collectors when flows 
355 end.  To enable, define the key \fBnetflow.\fIbridge\fB.host\fR for each 
356 collector in the form \fIip\fB:\fIport\fR.  Records from \fIbridge\fR 
357 will be sent to each \fIip\fR on UDP \fIport\fR.  The \fIip\fR must
358 be specified numerically, not as a DNS name.
359
360 The NetFlow messages will use the datapath index for the engine type and id.  
361 This can be overridden with the \fBnetflow.\fIbridge\fB.engine-type\fR and 
362 \fBnetflow.\fIbridge\fB.engine-id\fR, respectively.  Each takes a value
363 between 0 and 255, inclusive. 
364
365 Many NetFlow collectors do not expect multiple virtual switches to be
366 sending messages from the same host, and they do not store the engine
367 information which could be used to disambiguate the traffic.  To prevent
368 flows from multiple switches appearing as if they came on the interface,
369 add \fBnetflow.\fIbridge\fB.add-id-to-iface=true\fR to the configuration
370 file.  This will place the least significant 7 bits of the engine id
371 into the most significant bits of the ingress and egress interface fields 
372 of flow records.  By default, this behavior is disabled.
373
374 The following syntax sends NetFlow records for \fBmybr\fR to the NetFlow
375 collector \fBnflow.example.com\fR on UDP port \fB9995\fR:
376 .PP
377 .RS
378 .nf
379
380 netflow.mybr.host=nflow.example.com:9995
381
382 .fi
383 .RE
384 .SS "Remote Management"
385 A \fBovs\-vswitchd\fR instance may be remotely managed by a controller that
386 supports the OpenFlow Management Protocol, such as NOX.  This
387 functionality is enabled by setting the key \fBmgmt.controller\fR to one 
388 of the following values:
389 .
390 .IP "\fBssl:\fIip\fR[\fB:\fIport\fR]"
391 The specified SSL \fIport\fR (default: 6633) on the host at the given
392 \fIip\fR, which must be expressed as an IP address (not a DNS name).
393 SSL must be configured when this form is used (see \fBSSL
394 Configuration\fR, below).
395 .
396 .IP "\fBtcp:\fIip\fR[\fB:\fIport\fR]"
397 The specified TCP \fIport\fR (default: 6633) on the host at the given
398 \fIip\fR, which must be expressed as an IP address (not a DNS name).
399 .PP
400 The maximum time between attempts to connect to the controller may be
401 specified in integral seconds with the \fBmgmt.max-backoff\fR key.  The
402 default maximum backoff is 8 seconds, and the minimum value is 1
403 second.
404
405 An inactivity probe may be configured with the \fBmgmt.inactivity-probe\fR
406 key.  If \fBovs\-vswitchd\fR does not communicate with the controller for the
407 specified number of seconds, it will send a probe.  If a response is not
408 received for an additional amount of that time, \fBovs\-vswitchd\fR assumes
409 the connection has been broken and attempts to reconnect.  The default
410 and minimum values are both 5 seconds.
411
412 A management id may be specified with the \fBmgmt.id\fR key.  It takes
413 an id in the form of exactly 12 hexadecimal digits.  If one is not
414 specified, a random id is generated each time \fBovs\-vswitchd\fR is started.
415 .fi
416 .RE
417 .SS "OpenFlow Controller Connectivity"
418 \fBovs\-vswitchd\fR can perform all configured bridging and switching
419 locally, or it can be configured to connect a given bridge to an
420 external OpenFlow controller, such as NOX.  Its behavior depends on
421 the \fBbridge.\fIname\fB.controller\fR setting:
422 .
423 .TP
424 \fI\[la]unset\[ra]\fR
425 When the key is not set, the behavior depends on whether remote 
426 management is configured.  If management is configured, then the switch 
427 will connect to the controller specified on \fBmgmt.controller\fR.  If 
428 management is not configured, the switch will perform all configured 
429 bridging and switching locally.
430 .
431 .TP
432 \fI\[la]empty\[ra]\fR
433 Setting an empty string value disables controller connectivity.  The
434 switch will perform all configured bridging and switching locally.
435 .
436 .TP
437 \fBdiscover\fR
438 Use controller discovery to find the local OpenFlow controller.
439 Refer to \fBsecchan\fR(8) for information on how to configure a DHCP
440 server to support controller discovery.  The following additional
441 options control the discovery process:
442 .
443 .RS
444 .TP
445 \fBbridge.\fIname\fB.controller.accept-regex=\fIregex\fR
446 A POSIX extended regular expression against which the discovered
447 controller location is validated.  Only controllers whose names match
448 the regular expression will be accepted.
449 .IP
450 The default regular expression is \fBssl:.*\fR, meaning that only SSL
451 controller connections will be accepted, when SSL is configured (see
452 \fBSSL Configuration\fR), and \fB.*\fR otherwise, meaning that any
453 controller will be accepted.
454 .IP
455 The regular expression is implicitly anchored at the beginning of the
456 controller location string, as if it begins with \fB^\fR.
457 .TP
458 \fBbridge.\fIname\fB.controller.update-resolv.conf=\fBtrue\fR|\fBfalse\fR
459 By default, or if this is set to \fBtrue\fR, \fBovs\-vswitchd\fR overwrites
460 the system's \fB/etc/resolv.conf\fR with domain information and DNS
461 servers obtained via DHCP.  If this setting is \fBfalse\fR,
462 \fBovs\-vswitchd\fR will not modify \fB/etc/resolv.conf\fR.
463 .IP
464 \fBovs\-vswitchd\fR will only modify \fBresolv.conf\fR if the DHCP response
465 that it receives specifies one or more DNS servers.
466 .RE
467 .
468 .TP
469 \fBssl:\fIip\fR[\fB:\fIport\fR]
470 The specified SSL \fIport\fR (default: 6633) on the host at the given
471 \fIip\fR, which must be expressed as an IP address (not a DNS name).
472 SSL must be configured when this form is used (see \fBSSL
473 Configuration\fR, below).
474 .
475 .TP
476 \fBtcp:\fIip\fR[\fB:\fIport\fR]
477 The specified TCP \fIport\fR (default: 6633) on the host at the given
478 \fIip\fR, which must be expressed as an IP address (not a DNS name).
479 .
480 .TP
481 \fBunix:\fIfile\fR
482 The Unix domain server socket named \fIfile\fR.
483 .PP
484 The datapath ID used by the bridge to identify itself to the remote
485 controller may be specified as \fBbridge.\fIname\fB.datapath-id\fR,
486 in the form of exactly 12 hexadecimal digits.  If the datapath ID
487 is not specified, then it defaults to the bridge's MAC address (see
488 \fBBridge Configuration\fR, above, for information on how the bridge's
489 MAC address is chosen).
490 .ST "Local Port Network Configuration"
491 When an external controller is configured, but controller discovery is
492 not in use, the following additional settings are honored:
493 .TP
494 \fBbridge.\fIname\fB.controller.in-band=\fBtrue\fR|\fBfalse\fR
495 By default, or if this is set to \fBtrue\fR, \fBovs\-vswitchd\fR connects
496 to the controller in-band.  If this is set to \fBfalse\fR,
497 \fBovs\-vswitchd\fR connects to the controller out-of-band.  Refer to
498 \fBsecchan\fR(8) for a description of in-band and out-of-band control.
499 .IP "\fBbridge.\fIname\fB.controller.ip=\fIip\fR"
500 If specified, the IP address to configure on the bridge's local port.
501 .IP "\fBbridge.\fIname\fB.controller.netmask=\fInetmask\fR"
502 When an IP is specified, the corresponding netmask.  The default is
503 255.255.255.0 for a Class C IP address, 255.255.0.0 for Class B, and
504 255.0.0.0 for Class A.
505 .IP "\fBbridge.\fIname\fB.controller.gateway=\fIip\fR"
506 When an IP is specified, the corresponding IP gateway.  There is no
507 default gateway.
508 .ST "Controller Failure Settings"
509 The following additional settings take effect when any remote
510 controller is configured:
511 .IP "\fBbridge.\fIname\fB.controller.inactivity-probe=\fIsecs\fR"
512 This optional setting may be set to \fIsecs\fR, a number of seconds.
513 The minimum value of \fIsecs\fR is 5 seconds.  The default is taken
514 from \fBmgmt.inactivity-probe\fR (see above).
515 .IP
516 When the virtual switch is connected to the controller, it waits for a
517 message to be received from the controller for \fIsecs\fR seconds
518 before it sends a inactivity probe to the controller.  After sending
519 the inactivity probe, if no response is received for an additional
520 \fIsecs\fR seconds, the secure channel assumes that the connection has
521 been broken and attempts to reconnect.
522 .IP
523 Changing the inactivity probe interval also changes the interval
524 before entering standalone mode (see below).
525 .IP "\fBbridge.\fIname\fB.controller.fail-mode=\fBstandalone\fR|\fBsecure\fR"
526 .IQ "\fBmgmt.fail-mode=standalone\fR|\fBsecure\fR"
527 When a controller is configured, it is, ordinarily, responsible for
528 setting up all flows on the virtual switch.  Thus, if the connection to
529 the controller fails, no new network connections can be set up.  If
530 the connection to the controller stays down long enough, no packets
531 can pass through the switch at all.
532 .IP
533 The first of these that is set takes effect.
534 If the value is \fBstandalone\fR, or if neither of these settings
535 is set, \fBovs\-vswitchd\fR will take over
536 responsibility for setting up
537 flows when no message has been received from the controller for three
538 times the inactivity probe interval (see above).  In this mode,
539 \fBovs\-vswitchd\fR causes the datapath to act like an ordinary
540 MAC-learning switch.  \fBovs\-vswitchd\fR will continue to retry connecting
541 to the controller in the background and, when the connection succeeds,
542 it discontinues its standalone behavior.
543 .IP
544 If this option is set to \fBsecure\fR, \fBovs\-vswitchd\fR will not
545 set up flows on its own when the controller connection fails.
546 .IP "\fBbridge.\fIname\fB.controller.max-backoff=\fIsecs\fR"
547 Sets the maximum time between attempts to connect to the controller to
548 \fIsecs\fR, which must be at least 1.  The actual interval between
549 connection attempts starts at 1 second and doubles on each failing
550 attempt until it reaches the maximum.  The default maximum backoff
551 time is taken from \fBmgmt.max-backoff\fR.
552 .ST "Controller Rate-Limiting"
553 These settings configure how the virtual switch applies a ``token
554 bucket'' to limit the rate at which packets in unknown flows are
555 forwarded to the OpenFlow controller for flow-setup processing.  This
556 feature prevents a single bridge from overwhelming a controller.
557 .IP "\fBbridge.\fIname\fB.controller.rate-limit=\fIrate\fR"
558 .IQ "\fBmgmt.rate-limit=\fIrate\fR"
559 Limits the maximum rate at which packets will be forwarded to the
560 OpenFlow controller to \fIrate\fR packets per second.  A rate specified
561 explicitly for \fIname\fR overrides a value configured using the
562 \fBmgmt.rate-limit\fR key.
563 .IP
564 If neither one of these settings is set, then the bridge does not
565 limit the rate at which packets are forwarded to the controller.
566 .IP "\fBbridge.\fIname\fB.controller.burst-limit=\fIburst\fR"
567 .IQ "\fBmgmt.burst-limit=\fIburst\fR"
568 Sets the maximum number of unused packet credits that the bridge will
569 allow to accumulate during the time in which no packets are being
570 forwarded to the OpenFlow controller to \fIburst\fR (measured in
571 packets).  The default \fIburst\fR is one-quarter of the \fIrate\fR
572 specified in the rate-limit setting.
573 .IP
574 A burst specified explicitly for \fIname\fR overrides a value configured 
575 using the \fBmgmt.burst-limit\fR key.  This option takes effect only 
576 when a rate-limit is specified.
577 .ST "Remote Command Execution Settings"
578 These settings configure the commands that remote OpenFlow connections
579 are allowed to invoke using (e.g.) \fBovs\-ofctl execute\fR.  To be
580 permitted, a command name must be whitelisted and must not be
581 blacklisted.  When the whitelist and blacklist permit a command name,
582 \fBovs\-vswitchd\fR looks for a program with the same name as the command
583 in the commands directory (see below).  Other directories are not
584 searched.
585 .IP "\fBbridge.\fIname\fB.controller.commands.acl=\fIglob\fR"
586 Whitelists commands whose names match shell glob pattern \fIglob\fR,
587 allowing those commands to be invoked by the remote controller.
588 .IP
589 By default, no commands are whitelisted, so this setting is mandatory
590 if any remote command execution is to be allowed.
591 .IP "\fBbridge.\fIname\fB.controller.commands.acl=\fB!\fR\fIglob\fR"
592 Blacklists commands whose names match shell glob pattern \fIglob\fR,
593 prohibiting those commands from being invoked by the remote
594 controller.  Command names that include characters other than upper-
595 and lower-case English letters, digits, and the underscore and hyphen
596 characters are blacklisted unconditionally.
597 .IP "\fBbridge.\fIname\fB.controller.commands.dir=\fIdirectory\fR"
598 Sets the directory searched for remote command execution to
599 \fIdirectory\fR.  The default directory is
600 \fB@pkgdatadir@/commands\fR.
601 .SS "SSL Configuration"
602 When \fBovs\-vswitchd\fR is configured to connect over SSL for management or
603 for controller connectivity, the following settings are required:
604 .TP
605 \fBssl.private-key=\fIprivkey.pem\fR
606 Specifies a PEM file containing the private key used as the virtual
607 switch's identity for SSL connections to the controller.
608 .TP
609 \fBssl.certificate=\fIcert.pem\fR
610 Specifies a PEM file containing a certificate, signed by the
611 certificate authority (CA) used by the controller and manager, that
612 certifies the virtual switch's private key, identifying a trustworthy
613 switch.
614 .TP
615 \fBssl.ca-cert=\fIcacert.pem\fR
616 Specifies a PEM file containing the CA certificate used to verify that
617 the virtual switch is connected to a trustworthy controller.
618 .PP
619 These files are read only once, at \fBovs\-vswitchd\fR startup time.  If
620 their contents change, \fBovs\-vswitchd\fR must be killed and restarted.
621 .PP
622 These SSL settings apply to all SSL connections made by the virtual
623 switch.
624 .ST "CA Certificate Bootstrap"
625 Ordinarily, all of the files named in the SSL configuration must exist
626 when \fBovs\-vswitchd\fR starts.  However, if \fBssl.bootstrap-ca-cert\fR
627 is set to \fBtrue\fR, then \fBovs\-vswitchd\fR will attempt to obtain the
628 CA certificate from the controller on its first SSL connection and
629 save it to the named PEM file.  If it is successful, it will
630 immediately drop the connection and reconnect, and from then on all
631 SSL connections must be authenticated by a certificate signed by the
632 CA certificate thus obtained.
633 .PP
634 \fBThis option exposes the SSL connection to a man-in-the-middle
635 attack obtaining the initial CA certificate\fR, but it may be useful
636 for bootstrapping.
637 .PP
638 This option is only useful if the controller sends its CA certificate
639 as part of the SSL certificate chain.  The SSL protocol does not
640 require the controller to send the CA certificate, but
641 \fBcontroller\fR(8) can be configured to do so with the
642 \fB--peer-ca-cert\fR option.
643 .SS "OpenFlow Management Connections"
644 By default, each bridge \fIname\fR listens for OpenFlow management
645 connections on a Unix domain socket named
646 \fB@RUNDIR@/\fIname\fB.mgmt\fR.  This socket can be used to perform
647 local OpenFlow monitoring and administration, e.g., \fBovs\-ofctl dump-flows
648 unix:@RUNDIR@/\fIname\fB.mgmt\fR to display the flows currently set up
649 in bridge \fIname\fR.
650 .PP
651 If \fBbridge.\fIname\fB.openflow.listeners\fR is set to one or more
652 values, \fBovs\-vswitchd\fR instead listens on the specified connection
653 methods.  Acceptable connection methods include:
654 .RS
655 .IP "\fBpunix:\fIfile\fR"
656 Listens for connections on the Unix domain server socket named \fIfile\fR.
657 .IP "\fBpssl:\fR[\fIport\fR]"
658 Listens for SSL connections on \fIport\fR (default: 6633).  SSL must
659 be configured when this form is used (see \fBSSL Configuration\fR,
660 above).
661 .IP "\fBptcp:\fR[\fIport\fR]"
662 Listens for TCP connections on \fIport\fR (default: 6633).
663 .RE
664 To entirely disable listening for management connections, set
665 \fBbridge.\fIname\fB.openflow.listeners\fR to the single value
666 \fBnone\fR.
667
668 .SS "OpenFlow Controller Connection Snooping"
669 By default, each bridge \fIname\fR listens for OpenFlow controller
670 connection snooping connections on a Unix domain socket named
671 \fB@RUNDIR@/\fIname\fB.snoop\fR.  A client that connects to this
672 socket, e.g., \fBovs\-ofctl monitor unix:@RUNDIR@/\fIname\fB.snoop\fR, will
673 receive a copy of every OpenFlow message sent by the switch to the
674 controller, or vice versa, on the primary OpenFlow controller
675 connection.
676 .PP
677 If \fBbridge.\fIname\fB.openflow.snoops\fR is set to one or more
678 values, \fBovs\-vswitchd\fR instead listens on the specified connection
679 methods.  The acceptable connection methods are the same as for
680 OpenFlow management connections (see above).
681 .PP
682 To entirely disable controller connection snooping, set
683 \fBbridge.\fIname\fB.openflow.snoops\fR to the single value
684 \fBnone\fR.
685 .SH "SEE ALSO"
686 .BR ovs\-brcompatd (8),
687 .BR ovs\-cfg\-mod (8),
688 .BR ovs\-vswitchd (8)