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