Makefiles: Add $(AM_V_GEN) annotations to clean up "make" output.
[cascardo/ovs.git] / vswitchd / ovs-vswitchd.8.in
1 .\" -*- nroff -*-
2 .de IQ
3 .  br
4 .  ns
5 .  IP "\\$1"
6 ..
7 .TH ovs\-vswitchd 8 "@VERSION@" "Open vSwitch" "Open vSwitch Manual"
8 .\" This program's name:
9 .ds PN ovs\-vswitchd
10 .
11 .SH NAME
12 ovs\-vswitchd \- Open vSwitch daemon
13 .
14 .SH SYNOPSIS
15 \fBovs\-vswitchd \fR[\fIdatabase\fR]
16 .
17 .SH DESCRIPTION
18 A daemon that manages and controls any number of Open vSwitch switches
19 on the local machine.
20 .PP
21 The \fIdatabase\fR argument specifies how \fBovs\-vswitchd\fR connects
22 to \fBovsdb\-server\fR.  The default is \fBunix:@RUNDIR@/db.sock\fR.
23 The following forms are accepted:
24 .so ovsdb/remote-active.man
25 .so ovsdb/remote-passive.man
26 .PP
27 \fBovs\-vswitchd\fR retrieves its configuration from \fIdatabase\fR at
28 startup.  It sets up Open vSwitch datapaths and then operates
29 switching across each bridge described in its configuration files.  As
30 the database changes, \fBovs\-vswitchd\fR automatically updates its
31 configuration to match.
32 .PP
33 \fBovs\-vswitchd\fR switches may be configured with any of the following
34 features:
35 .
36 .IP \(bu
37 L2 switching with MAC learning.
38 .
39 .IP \(bu
40 NIC bonding with automatic fail-over and source MAC-based TX load
41 balancing ("SLB").
42 .
43 .IP \(bu
44 802.1Q VLAN support.
45 .
46 .IP \(bu
47 Port mirroring, with optional VLAN tagging.
48 .
49 .IP \(bu
50 NetFlow v5 flow logging.
51 .
52 .IP \(bu
53 sFlow(R) monitoring.
54 .
55 .IP \(bu
56 Connectivity to an external OpenFlow controller, such as NOX.
57 .
58 .PP
59 Only a single instance of \fBovs\-vswitchd\fR is intended to run at a time.
60 A single \fBovs\-vswitchd\fR can manage any number of switch instances, up
61 to the maximum number of supported Open vSwitch datapaths.
62 .PP
63 \fBovs\-vswitchd\fR does all the necessary management of Open vSwitch datapaths
64 itself.  Thus, external tools, such \fBovs\-dpctl\fR(8), are not needed for
65 managing datapaths in conjunction with \fBovs\-vswitchd\fR, and their use
66 to modify datapaths when \fBovs\-vswitchd\fR is running can interfere with
67 its operation.  (\fBovs\-dpctl\fR may still be useful for diagnostics.)
68 .PP
69 An Open vSwitch datapath kernel module must be loaded for \fBovs\-vswitchd\fR
70 to be useful.  Please refer to the \fBINSTALL.Linux\fR file included in the
71 Open vSwitch distribution for instructions on how to build and load
72 the Open vSwitch kernel module.
73 .PP
74 .SH OPTIONS
75 .IP "\fB\-\-mlockall\fR"
76 Causes \fBovs\-vswitchd\fR to call the \fBmlockall()\fR function, to
77 attempt to lock all of its process memory into physical RAM,
78 preventing the kernel from paging any of its memory to disk.  This
79 helps to avoid networking interruptions due to system memory pressure.
80 .IP
81 Some systems do not support \fBmlockall()\fR at all, and other systems
82 only allow privileged users, such as the superuser, to use it.
83 \fBovs\-vswitchd\fR emits a log message if \fBmlockall()\fR is
84 unavailable or unsuccessful.
85 .
86 .SS "DPDK Options"
87 .IP "\fB\-\-dpdk\fR"
88 Initialize \fBovs\-vswitchd\fR DPDK datapath.  Refer to INSTALL.DPDK
89 for details.
90 .SS "Daemon Options"
91 .ds DD \
92 \fBovs\-vswitchd\fR detaches only after it has connected to the \
93 database, retrieved the initial configuration, and set up that \
94 configuration.
95 .so lib/daemon.man
96 .SS "Service Options"
97 .so lib/service.man
98 .SS "Public Key Infrastructure Options"
99 .so lib/ssl.man
100 .so lib/ssl-bootstrap.man
101 .so lib/vlog.man
102 .so lib/common.man
103 .
104 .SH "RUNTIME MANAGEMENT COMMANDS"
105 \fBovs\-appctl\fR(8) can send commands to a running
106 \fBovs\-vswitchd\fR process.  The currently supported commands are
107 described below.  The command descriptions assume an understanding of
108 how to configure Open vSwitch.
109 .SS "GENERAL COMMANDS"
110 .IP "\fBexit\fR"
111 Causes \fBovs\-vswitchd\fR to gracefully terminate.
112 .IP "\fBqos/show\fR \fIinterface\fR"
113 Queries the kernel for Quality of Service configuration and statistics
114 associated with the given \fIinterface\fR.
115 .IP "\fBbfd/show\fR [\fIinterface\fR]"
116 Displays detailed information about Bidirectional Forwarding Detection
117 configured on \fIinterface\fR.  If \fIinterface\fR is not specified,
118 then displays detailed information about all interfaces with BFD
119 enabled.
120 .IP "\fBbfd/set-forwarding\fR [\fIinterface\fR] \fIstatus\fR"
121 Force the fault status of the BFD module on \fIinterface\fR (or all
122 interfaces if none is given) to be \fIstatus\fR.  \fIstatus\fR can be
123 "true", "false", or "normal" which reverts to the standard behavior.
124 .IP "\fBcfm/show\fR [\fIinterface\fR]"
125 Displays detailed information about Connectivity Fault Management
126 configured on \fIinterface\fR.  If \fIinterface\fR is not specified,
127 then displays detailed information about all interfaces with CFM
128 enabled.
129 .IP "\fBcfm/set-fault\fR [\fIinterface\fR] \fIstatus\fR"
130 Force the fault status of the CFM module on \fIinterface\fR (or all
131 interfaces if none is given) to be \fIstatus\fR.  \fIstatus\fR can be
132 "true", "false", or "normal" which reverts to the standard behavior.
133 .IP "\fBstp/tcn\fR [\fIbridge\fR]"
134 Forces a topology change event on \fIbridge\fR if it's running STP.  This
135 may cause it to send Topology Change Notifications to its peers and flush
136 its MAC table..  If no \fIbridge\fR is given, forces a topology change
137 event on all bridges.
138 .SS "BRIDGE COMMANDS"
139 These commands manage bridges.
140 .IP "\fBfdb/flush\fR [\fIbridge\fR]"
141 Flushes \fIbridge\fR MAC address learning table, or all learning tables
142 if no \fIbridge\fR is given.
143 .IP "\fBfdb/show\fR \fIbridge\fR"
144 Lists each MAC address/VLAN pair learned by the specified \fIbridge\fR,
145 along with the port on which it was learned and the age of the entry,
146 in seconds.
147 .IP "\fBmdb/flush\fR [\fIbridge\fR]"
148 Flushes \fIbridge\fR multicast snooping table, or all snooping tables
149 if no \fIbridge\fR is given.
150 .IP "\fBmdb/show\fR \fIbridge\fR"
151 Lists each multicast group/VLAN pair learned by the specified \fIbridge\fR,
152 along with the port on which it was learned and the age of the entry,
153 in seconds.
154 .IP "\fBbridge/reconnect\fR [\fIbridge\fR]"
155 Makes \fIbridge\fR drop all of its OpenFlow controller connections and
156 reconnect.  If \fIbridge\fR is not specified, then all bridges drop
157 their controller connections and reconnect.
158 .IP
159 This command might be useful for debugging OpenFlow controller issues.
160 .
161 .IP "\fBbridge/dump\-flows\fR \fIbridge\fR"
162 Lists all flows in \fIbridge\fR, including those normally hidden to
163 commands such as \fBovs\-ofctl dump\-flows\fR.  Flows set up by mechanisms
164 such as in-band control and fail-open are hidden from the controller
165 since it is not allowed to modify or override them.
166 .SS "BOND COMMANDS"
167 These commands manage bonded ports on an Open vSwitch's bridges.  To
168 understand some of these commands, it is important to understand a
169 detail of the bonding implementation called ``source load balancing''
170 (SLB).  Instead of directly assigning Ethernet source addresses to
171 slaves, the bonding implementation computes a function that maps an
172 48-bit Ethernet source addresses into an 8-bit value (a ``MAC hash''
173 value).  All of the Ethernet addresses that map to a single 8-bit
174 value are then assigned to a single slave.
175 .IP "\fBbond/list\fR"
176 Lists all of the bonds, and their slaves, on each bridge.
177 .
178 .IP "\fBbond/show\fR [\fIport\fR]"
179 Lists all of the bond-specific information (updelay, downdelay, time
180 until the next rebalance) about the given bonded \fIport\fR, or all
181 bonded ports if no \fIport\fR is given.  Also lists information about
182 each slave: whether it is enabled or disabled, the time to completion
183 of an updelay or downdelay if one is in progress, whether it is the
184 active slave, the hashes assigned to the slave.  Any LACP information
185 related to this bond may be found using the \fBlacp/show\fR command.
186 .
187 .IP "\fBbond/migrate\fR \fIport\fR \fIhash\fR \fIslave\fR"
188 Only valid for SLB bonds.  Assigns a given MAC hash to a new slave.
189 \fIport\fR specifies the bond port, \fIhash\fR the MAC hash to be
190 migrated (as a decimal number between 0 and 255), and \fIslave\fR the
191 new slave to be assigned.
192 .IP
193 The reassignment is not permanent: rebalancing or fail-over will
194 cause the MAC hash to be shifted to a new slave in the usual
195 manner.
196 .IP
197 A MAC hash cannot be migrated to a disabled slave.
198 .IP "\fBbond/set\-active\-slave\fR \fIport\fR \fIslave\fR"
199 Sets \fIslave\fR as the active slave on \fIport\fR.  \fIslave\fR must
200 currently be enabled.
201 .IP
202 The setting is not permanent: a new active slave will be selected
203 if \fIslave\fR becomes disabled.
204 .IP "\fBbond/enable\-slave\fR \fIport\fR \fIslave\fR"
205 .IQ "\fBbond/disable\-slave\fR \fIport\fR \fIslave\fR"
206 Enables (or disables) \fIslave\fR on the given bond \fIport\fR, skipping any
207 updelay (or downdelay).
208 .IP
209 This setting is not permanent: it persists only until the carrier
210 status of \fIslave\fR changes.
211 .IP "\fBbond/hash\fR \fImac\fR [\fIvlan\fR] [\fIbasis\fR]"
212 Returns the hash value which would be used for \fImac\fR with \fIvlan\fR
213 and \fIbasis\fR if specified.
214 .
215 .IP "\fBlacp/show\fR [\fIport\fR]"
216 Lists all of the LACP related information about the given \fIport\fR:
217 active or passive, aggregation key, system id, and system priority.  Also
218 lists information about each slave: whether it is enabled or disabled,
219 whether it is attached or detached, port id and priority, actor
220 information, and partner information.  If \fIport\fR is not specified,
221 then displays detailed information about all interfaces with CFM
222 enabled.
223 .SS "DPCTL DATAPATH DEBUGGING COMMANDS"
224 The primary way to configure \fBovs\-vswitchd\fR is through the Open
225 vSwitch database, e.g. using \fBovs\-vsctl\fR(8).  These commands
226 provide a debugging interface for managing datapaths.  They implement
227 the same features (and syntax) as \fBovs\-dpctl\fR(8).  Unlike
228 \fBovs\-dpctl\fR(8), these commands work with datapaths that are
229 integrated into \fBovs\-vswitchd\fR (e.g. the \fBnetdev\fR datapath
230 type).
231 .PP
232 .
233 .ds DX \fBdpctl/\fR
234 .de DO
235 \\$2 \\$1 \\$3
236 ..
237 .so lib/dpctl.man
238 .
239 .so ofproto/ofproto-dpif-unixctl.man
240 .so ofproto/ofproto-unixctl.man
241 .so lib/vlog-unixctl.man
242 .so lib/memory-unixctl.man
243 .so lib/coverage-unixctl.man
244 .
245 .SH "OPENFLOW IMPLEMENTATION"
246 .
247 .PP
248 This section documents aspects of OpenFlow for which the OpenFlow
249 specification requires documentation.
250 .
251 .SS "Packet buffering."
252 The OpenFlow specification, version 1.2, says:
253 .
254 .IP
255 Switches that implement buffering are expected to expose, through
256 documentation, both the amount of available buffering, and the length
257 of time before buffers may be reused.
258 .
259 .PP
260 Open vSwitch maintains a separate set of 256 packet buffers for each
261 OpenFlow connection.  Any given packet buffer is preserved until it is
262 referenced by an \fBOFPT_FLOW_MOD\fR or \fBOFPT_PACKET_OUT\fR request
263 or for 5 seconds, whichever comes first.
264 .
265 .SH "LIMITS"
266 .
267 .PP
268 We believe these limits to be accurate as of this writing.  These
269 limits assume the use of the Linux kernel datapath.
270 .
271 .IP \(bu
272 \fBovs\-vswitchd\fR started through \fBovs\-ctl\fR(8) provides a limit of 7500
273 file descriptors.  The limits on the number of bridges and ports is decided by
274 the availability of file descriptors.  With the Linux kernel datapath, creation
275 of a single bridge consumes 3 file descriptors and adding a port consumes
276 1 file descriptor.  Performance will degrade beyond 1,024 ports per bridge due
277 to fixed hash table sizing.  Other platforms may have different limitations.
278 .
279 .IP \(bu
280 2,048 MAC learning entries per bridge, by default.  (This is
281 configurable via \fBother\-config:mac\-table\-size\fR in the
282 \fBBridge\fR table.  See \fBovs\-vswitchd.conf.db\fR(5) for details.)
283 .
284 .IP \(bu
285 Kernel flows are limited only by memory available to the kernel.
286 Performance will degrade beyond 1,048,576 kernel flows per bridge with
287 a 32-bit kernel, beyond 262,144 with a 64-bit kernel.
288 (\fBovs\-vswitchd\fR should never install anywhere near that many
289 flows.)
290 .
291 .IP \(bu
292 OpenFlow flows are limited only by available memory.  Performance is
293 linear in the number of unique wildcard patterns.  That is, an
294 OpenFlow table that contains many flows that all match on the same
295 fields in the same way has a constant-time lookup, but a table that
296 contains many flows that match on different fields requires lookup
297 time linear in the number of flows.
298 .
299 .IP \(bu
300 255 ports per bridge participating in 802.1D Spanning Tree Protocol.
301 .
302 .IP \(bu
303 32 mirrors per bridge.
304 .
305 .IP \(bu
306 15 bytes for the name of a port.  (This is a Linux kernel limitation.)
307 .
308 .SH "SEE ALSO"
309 .BR ovs\-appctl (8),
310 .BR ovsdb\-server (1),
311 \fBINSTALL.Linux\fR in the Open vSwitch distribution.