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