]> git.proxmox.com Git - ovs.git/blame - utilities/ovs-vsctl.8.in
ovsdb-datum: Add functions for parsing and formatting atoms, data.
[ovs.git] / utilities / ovs-vsctl.8.in
CommitLineData
3b135da3
BP
1.\" -*- nroff -*-
2.de IQ
3. br
4. ns
5. IP "\\$1"
6..
5aa00635
JP
7.de ST
8. PP
9. RS -0.15in
10. I "\\$1"
11. RE
12. PP
13..
3fbe1d30 14.TH ovs\-vsctl 8 "November 2009" "Open vSwitch" "Open vSwitch Manual"
3b135da3
BP
15.ds PN ovs\-vsctl
16.
17.SH NAME
18ovs\-vsctl \- utility for querying and configuring \fBovs\-vswitchd\fR
19.
20.SH SYNOPSIS
460aad80 21\fBovs\-vsctl\fR [\fIoptions\fR] [\fB\-\-\fR] \fIcommand \fR[\fIargs\fR\&...]
4d14e30f 22[\fB\-\-\fR \fIcommand \fR[\fIargs\fR\&...]]
3b135da3
BP
23.
24.SH DESCRIPTION
dfbe07ba
BP
25The \fBovs\-vsctl\fR program configures \fBovs\-vswitchd\fR(8) by
26providing a high\-level interface to editing its configuration
27database. This program is mainly intended for use when
28\fBovs\-vswitchd\fR is running. If it is used when
29\fBovs\-vswitchd\fR is not running, then \fB\-\-no\-wait\fR should be
30specified and configuration changes will only take effect when
31\fBovs\-vswitchd\fR is started.
3b135da3 32.PP
dfbe07ba
BP
33By default, each time \fBovs\-vsctl\fR runs, it connects to an
34\fBovsdb\-server\fR process that maintains an Open vSwitch
35configuration database. Using this connection, it queries and
36possibly applies changes to the database, depending on the supplied
37commands. Then, if it applied any changes, it waits until
38\fBovs\-vswitchd\fR has finished reconfiguring itself before it exits.
460aad80
BP
39.PP
40\fBovs\-vsctl\fR can perform any number of commands in a single run,
41implemented as a single atomic transaction against the database.
42Commands are separated on the command line by \fB\-\-\fR arguments.
3b135da3
BP
43.
44.SS "Linux VLAN Bridging Compatibility"
45The \fBovs\-vsctl\fR program supports the model of a bridge
46implemented by Open vSwitch, in which a single bridge supports ports
47on multiple VLANs. In this model, each port on a bridge is either a
48trunk port that potentially passes packets tagged with 802.1Q headers
49that designate VLANs or it is assigned a single implicit VLAN that is
50never tagged with an 802.1Q header.
51.PP
52For compatibility with software designed for the Linux bridge,
53\fBovs\-vsctl\fR also supports a model in which traffic associated
54with a given 802.1Q VLAN is segregated into a separate bridge. A
55special form of the \fBadd\-br\fR command (see below) creates a ``fake
56bridge'' within an Open vSwitch bridge to simulate this behavior.
57When such a ``fake bridge'' is active, \fBovs\-vsctl\fR will treat it
58much like a bridge separate from its ``parent bridge,'' but the actual
59implementation in Open vSwitch uses only a single bridge, with ports on
60the fake bridge assigned the implicit VLAN of the fake bridge of which
61they are members.
62.
63.SH OPTIONS
64.
460aad80
BP
65The following options affect the behavior \fBovs\-vsctl\fR as a whole.
66Some individual commands also accept their own options, which are
67given just before the command name. If the first command on the
68command line has options, then those options must be separated from
69the global options by \fB\-\-\fR.
3b135da3 70.
dfbe07ba
BP
71.IP "\fB\-\-db=\fIserver\fR"
72Sets \fIserver\fR as the database server that \fBovs\-vsctl\fR
73contacts to query or modify configuration. The default is
74\fBunix:@RUNDIR@/ovsdb\-server\fR. \fIserver\fR must take one of the
75following forms:
76.RS
9467fe62 77.so ovsdb/remote-active.man
dfbe07ba 78.RE
9467fe62 79.
dfbe07ba
BP
80.IP "\fB\-\-no\-wait\fR"
81Prevents \fBovs\-vsctl\fR from waiting for \fBovs\-vswitchd\fR to
82reconfigure itself according to the the modified database. This
83option should be used if \fBovs\-vswitchd\fR is not running;
84otherwise, \fBovs-vsctl\fR will not exit until \fBovs-vswitchd\fR
85starts.
3b135da3 86.IP
dfbe07ba
BP
87This option has no effect if the commands specified do not change the
88database.
3b135da3 89.
37c84020
BP
90.IP "\fB\-\-no\-syslog\fR"
91By default, \fBovs\-vsctl\fR logs its arguments and the details of any
92changes that it makes to the system log. This option disables this
93logging.
dfbe07ba
BP
94.IP
95This option is equivalent to \fB\-\-verbose=vvsctl:syslog:warn\fR.
96.
2792c2ad 97.IP "\fB\-\-oneline\fR"
4d14e30f 98Modifies the output format so that the output for each command is printed
2792c2ad 99on a single line. New-line characters that would otherwise separate
4d14e30f 100lines are printed as \fB\\n\fR, and any instances of \fB\\\fR that
2792c2ad 101would otherwise appear in the output are doubled.
4d14e30f 102Prints a blank line for each command that has no output.
37c84020 103.
577aebdf
BP
104.IP "\fB\-\-dry\-run\fR"
105Prevents \fBovs\-vsctl\fR from actually modifying the database.
106.
342045e1
BP
107.IP "\fB-t \fIsecs\fR"
108.IQ "\fB--timeout=\fIsecs\fR"
a39a859a
JP
109Limits runtime to approximately \fIsecs\fR seconds. A value of
110zero will cause \fBovs\-vsctl\fR to wait forever. If the timeout expires,
111\fBovs\-vsctl\fR will exit with a \fBSIGALRM\fR signal. If this option is
112not used, \fBovs\-vsctl\fR uses a timeout of five seconds.
113(A timeout would normally happen only if the database cannot be contacted.)
342045e1 114.
84ee7bcf 115.so lib/ssl.man
dfbe07ba
BP
116.so lib/vlog.man
117.
3b135da3
BP
118.SH COMMANDS
119The commands implemented by \fBovs\-vsctl\fR are described in the
120sections below.
524555d1
BP
121.SS "Open vSwitch Commands"
122These commands work with an Open vSwitch as a whole.
123.
124.IP "\fBinit\fR"
125Initializes the Open vSwitch database, if it is empty. If the
126database has already been initialized, this command has no effect.
127.IP
128Any successful \fBovs\-vsctl\fR command automatically initializes the
129Open vSwitch database if it is empty. This command is provided to
130initialize the database without executing any other command.
3b135da3
BP
131.
132.SS "Bridge Commands"
133These commands examine and manipulate Open vSwitch bridges.
134.
135.IP "\fBadd\-br \fIbridge\fR"
136Creates a new bridge named \fIbridge\fR. Initially the bridge will
137have no ports (other than \fIbridge\fR itself).
138.
139.IP "\fBadd\-br \fIbridge parent vlan\fR"
140Creates a ``fake bridge'' named \fIbridge\fR within the existing Open
141vSwitch bridge \fIparent\fR, which must already exist and must not
142itself be a fake bridge. The new fake bridge will be on 802.1Q VLAN
143\fIvlan\fR, which must be an integer between 1 and 4095. Initially
144\fIbridge\fR will have no ports (other than \fIbridge\fR itself).
145.
460aad80 146.IP "[\fB\-\-if\-exists\fR] \fBdel\-br \fIbridge\fR"
3b135da3
BP
147Deletes \fIbridge\fR and all of its ports. If \fIbridge\fR is a real
148bridge, this command also deletes any fake bridges that were created
149with \fIbridge\fR as parent, including all of their ports.
460aad80
BP
150.IP
151Without \fB\-\-if\-exists\fR, attempting to delete a bridge that does
152not exist is an error. With \fB\-\-if\-exists\fR, attempting to
153delete a bridge that does not exist has no effect.
3b135da3
BP
154.
155.IP "\fBlist\-br\fR"
156Lists all existing real and fake bridges on standard output, one per
157line.
158.
159.IP "\fBbr\-exists \fIbridge\fR"
160Tests whether \fIbridge\fR exists as a real or fake bridge. If so,
161\fBovs\-vsctl\fR exits successfully with exit code 0. If not,
162\fBovs\-vsctl\fR exits unsuccessfully with exit code 2.
163.
8e58fa9a
BP
164.IP "\fBbr\-to\-vlan \fIbridge\fR"
165If \fIbridge\fR is a fake bridge, prints the bridge's 802.1Q VLAN as a
166decimal integer. If \fIbridge\fR is a real bridge, prints 0.
167.
168.IP "\fBbr\-to\-parent \fIbridge\fR"
169If \fIbridge\fR is a fake bridge, prints the name of its parent
170bridge. If \fIbridge\fR is a real bridge, print \fIbridge\fR.
171.
457e1eb0
BP
172.IP "\fBbr\-set\-external\-id \fIbridge key\fR [\fIvalue\fR]"
173Sets or clears an ``external ID'' value on \fIbridge\fR. These values
174are intended to identify entities external to Open vSwitch with which
175\fIbridge\fR is associated, e.g. the bridge's identifier in a
176virtualization management platform. The Open vSwitch database schema
177specifies well-known \fIkey\fR values, but \fIkey\fR and \fIvalue\fR
178are otherwise arbitrary strings.
179.IP
180If \fIvalue\fR is specified, then \fIkey\fR is set to \fIvalue\fR for
181\fIbridge\fR, overwriting any previous value. If \fIvalue\fR is
182omitted, then \fIkey\fR is removed from \fIbridge\fR's set of external
183IDs (if it was present).
184.
185.IP "\fBbr\-get\-external\-id \fIbridge\fR [\fIkey\fR]"
186Queries the external IDs on \fIbridge\fR. If \fIkey\fR is specified,
187the output is the value for that \fIkey\fR or the empty string if
188\fIkey\fR is unset. If \fIkey\fR is omitted, the output is
189\fIkey\fB=\fIvalue\fR, one per line, for each key-value pair.
190.
3b135da3
BP
191.SS "Port Commands"
192.
193These commands examine and manipulate Open vSwitch ports. These
194commands treat a bonded port as a single entity.
195.
196.IP "\fBlist\-ports \fIbridge\fR"
197Lists all of the ports within \fIbridge\fR on standard output, one per
198line. The local port \fIbridge\fR is not included in the list.
199.
200.IP "\fBadd\-port \fIbridge port\fR"
201Creates on \fIbridge\fR a new port named \fIport\fR from the network
202device of the same name.
203.
b4182c7f 204.IP "[\fB\-\-fake\-iface\fR] \fBadd\-bond \fIbridge port iface\fR\&..."
3b135da3
BP
205Creates on \fIbridge\fR a new port named \fIport\fR that bonds
206together the network devices given as each \fIiface\fR. At least two
207interfaces must be named.
b4182c7f
JP
208.IP
209With \fB\-\-fake\-iface\fR, a fake interface with the name \fIport\fR is
210created. This should only be used for compatibility with legacy
211software that requires it.
3b135da3 212.
460aad80 213.IP "[\fB\-\-if\-exists\fR] \fBdel\-port \fR[\fIbridge\fR] \fIport\fR"
3d1b9636
BP
214Deletes \fIport\fR. If \fIbridge\fR is omitted, \fIport\fR is removed
215from whatever bridge contains it; if \fIbridge\fR is specified, it
216must be the real or fake bridge that contains \fIport\fR.
460aad80
BP
217.IP
218Without \fB\-\-if\-exists\fR, attempting to delete a port that does
219not exist is an error. With \fB\-\-if\-exists\fR, attempting to
220delete a port that does not exist has no effect.
3b135da3
BP
221.
222.IP "\fBport\-to\-br \fIport\fR"
223Prints the name of the bridge that contains \fIport\fR on standard
224output.
225.
457e1eb0
BP
226.IP "\fBport\-set\-external\-id \fIport key\fR [\fIvalue\fR]"
227Sets or clears an ``external ID'' value on \fIport\fR. These value
228are intended to identify entities external to Open vSwitch with which
229\fIport\fR is associated, e.g. the port's identifier in a
230virtualization management platform. The Open vSwitch database schema
231specifies well-known \fIkey\fR values, but \fIkey\fR and \fIvalue\fR
232are otherwise arbitrary strings.
233.IP
234If \fIvalue\fR is specified, then \fIkey\fR is set to \fIvalue\fR for
235\fIport\fR, overwriting any previous value. If \fIvalue\fR is
236omitted, then \fIkey\fR is removed from \fIport\fR's set of external
237IDs (if it was present).
238.
239.IP "\fBbr\-get\-external\-id \fIport\fR [\fIkey\fR]"
240Queries the external IDs on \fIport\fR. If \fIkey\fR is specified,
241the output is the value for that \fIkey\fR or the empty string if
242\fIkey\fR is unset. If \fIkey\fR is omitted, the output is
243\fIkey\fB=\fIvalue\fR, one per line, for each key-value pair.
244.
3b135da3
BP
245.SS "Interface Commands"
246.
247These commands examine the interfaces attached to an Open vSwitch
248bridge. These commands treat a bonded port as a collection of two or
249more interfaces, rather than as a single port.
250.
251.IP "\fBlist\-ifaces \fIbridge\fR"
252Lists all of the interfaces within \fIbridge\fR on standard output,
253one per line. The local port \fIbridge\fR is not included in the
254list.
255.
256.IP "\fBiface\-to\-br \fIiface\fR"
257Prints the name of the bridge that contains \fIiface\fR on standard
258output.
457e1eb0
BP
259.
260.IP "\fBiface\-set\-external\-id \fIiface key\fR [\fIvalue\fR]"
261Sets or clears an ``external ID'' value on \fIiface\fR. These value
262are intended to identify entities external to Open vSwitch with which
263\fIiface\fR is associated, e.g. the interface's identifier in a
264virtualization management platform. The Open vSwitch database schema
265specifies well-known \fIkey\fR values, but \fIkey\fR and \fIvalue\fR
266are otherwise arbitrary strings.
267.IP
268If \fIvalue\fR is specified, then \fIkey\fR is set to \fIvalue\fR for
269\fIiface\fR, overwriting any previous value. If \fIvalue\fR is
270omitted, then \fIkey\fR is removed from \fIiface\fR's set of external
271IDs (if it was present).
272.
273.IP "\fBbr\-get\-external\-id \fIiface\fR [\fIkey\fR]"
274Queries the external IDs on \fIiface\fR. If \fIkey\fR is specified,
275the output is the value for that \fIkey\fR or the empty string if
276\fIkey\fR is unset. If \fIkey\fR is omitted, the output is
277\fIkey\fB=\fIvalue\fR, one per line, for each key-value pair.
278.
5aa00635
JP
279.SS "OpenFlow Controller Connectivity"
280.
281\fBovs\-vswitchd\fR can perform all configured bridging and switching
282locally, or it can be configured to connect a given bridge to an
283external OpenFlow controller, such as NOX.
284.
285If a \fIbridge\fR argument is given, the settings apply only to the
286specified bridge. Otherwise, they apply to the Open vSwitch instance,
287and its configuration applies to any bridge that has not been explicitly
288configured through a \fIbridge\fR argument.
289.
290.IP "\fBget\-controller\fR [\fIbridge\fR]"
291Prints the configured controller target.
292.
293.IP "\fBdel\-controller\fR [\fIbridge\fR]"
294Deletes the configured controller target.
295.
296.IP "\fBset\-controller\fR [\fIbridge\fR] \fItarget\fR"
297Sets the configured controller target. The \fItarget\fR may use any of
298the following forms:
299.
300.RS
301.TP
84ee7bcf 302.so lib/vconn-active.man
5aa00635 303.RE
84ee7bcf 304.
5aa00635
JP
305.ST "Controller Failure Settings"
306.
307When a controller is configured, it is, ordinarily, responsible for
308setting up all flows on the switch. Thus, if the connection to
309the controller fails, no new network connections can be set up. If
310the connection to the controller stays down long enough, no packets
311can pass through the switch at all.
312.ST
313If the value is \fBstandalone\fR, or if neither of these settings
314is set, \fBovs\-vswitchd\fR will take over
315responsibility for setting up
316flows when no message has been received from the controller for three
317times the inactivity probe interval (xxx needs to be exposed). In this mode,
318\fBovs\-vswitchd\fR causes the datapath to act like an ordinary
319MAC-learning switch. \fBovs\-vswitchd\fR will continue to retry connecting
320to the controller in the background and, when the connection succeeds,
321it discontinues its standalone behavior.
322.ST
323If this option is set to \fBsecure\fR, \fBovs\-vswitchd\fR will not
324set up flows on its own when the controller connection fails.
325.
326.IP "\fBget\-fail\-mode\fR [\fIbridge\fR]"
327Prints the configured failure mode.
328.
329.IP "\fBdel\-fail\-mode\fR [\fIbridge\fR]"
330Deletes the configured failure mode.
331.
332.IP "\fBset\-fail\-mode\fR [\fIbridge\fR] \fBstandalone\fR|\fBsecure\fR"
333Sets the configured failure mode.
334.
dd8ac6fe
JP
335.SS "SSL Configuration"
336When \fBovs\-vswitchd\fR is configured to connect over SSL for management or
337controller connectivity, the following parameters are required:
338.TP
339\fBprivate-key\fR
340Specifies a PEM file containing the private key used as the virtual
341switch's identity for SSL connections to the controller.
342.TP
343\fBcertificate\fR
344Specifies a PEM file containing a certificate, signed by the
345certificate authority (CA) used by the controller and manager, that
346certifies the virtual switch's private key, identifying a trustworthy
347switch.
348.TP
349\fBca-cert\fR
350Specifies a PEM file containing the CA certificate used to verify that
351the virtual switch is connected to a trustworthy controller.
352.PP
353These files are read only once, at \fBovs\-vswitchd\fR startup time. If
354their contents change, \fBovs\-vswitchd\fR must be killed and restarted.
355.PP
356These SSL settings apply to all SSL connections made by the virtual
357switch.
358.
359.IP "\fBget\-ssl\fR"
360Prints the SSL configuration.
361.
362.IP "\fBdel\-ssl\fR"
363Deletes the current SSL configuration.
364.
365.IP "[\fB\-\-bootstrap\fR] \fBset\-ssl\fR \fIprivate-key\fR \fIcertificate\fR \fIca-cert\fR"
366Sets the SSL configuration. The \fB\-\-bootstrap\fR option is described
367below.
368.
369.ST "CA Certificate Bootstrap"
370Ordinarily, all of the files named in the SSL configuration must exist
371when \fBovs\-vswitchd\fR starts. However, if the \fB\-\-bootstrap\fR
372option is given, then \fBovs\-vswitchd\fR will attempt to obtain the
373CA certificate from the controller on its first SSL connection and
374save it to the named PEM file. If it is successful, it will
375immediately drop the connection and reconnect, and from then on all
376SSL connections must be authenticated by a certificate signed by the
377CA certificate thus obtained.
378.PP
379\fBThis option exposes the SSL connection to a man-in-the-middle
380attack obtaining the initial CA certificate\fR, but it may be useful
381for bootstrapping.
382.PP
383This option is only useful if the controller sends its CA certificate
384as part of the SSL certificate chain. The SSL protocol does not
385require the controller to send the CA certificate, but
386\fBcontroller\fR(8) can be configured to do so with the
387\fB--peer-ca-cert\fR option.
388.
4d14e30f
BP
389.SH "EXAMPLES"
390Create a new bridge named br0 and add port eth0 to it:
391.IP
392.B "ovs-vsctl add\-br br0"
393.br
394.B "ovs-vsctl add\-port br0 eth0"
395.PP
396Alternatively, perform both operations in a single atomic transaction:
397.IP
398.B "ovs-vsctl add\-br br0 \-\- add\-port br0 eth0"
460aad80
BP
399.PP
400Delete bridge \fBbr0\fR, reporting an error if it does not exist:
401.IP
402.B "ovs\-vsctl del\-br br0"
403.PP
404Delete bridge \fBbr0\fR if it exists (the \fB\-\-\fR is required to
405separate \fBdel\-br\fR's options from the global options):
406.IP
407.B "ovs\-vsctl \-\- \-\-if\-exists del\-br br0"
3b135da3
BP
408.
409.SH "EXIT STATUS"
410.IP "0"
411Successful program execution.
412.IP "1"
413Usage, syntax, or configuration file error.
414.IP "2"
415The \fIbridge\fR argument to \fBbr\-exists\fR specified the name of a
416bridge that does not exist.
417.SH "SEE ALSO"
418.
dfbe07ba 419.BR ovsdb\-server (1),
3b135da3 420.BR ovs\-vswitchd (8).