]> git.proxmox.com Git - ovs.git/blame - utilities/ovs-vsctl.8.in
netdev-linux: Skip miimon execution when disabled
[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
5aa00635 12..
d2cb6c95 13.TH ovs\-vsctl 8 "@VERSION@" "Open vSwitch" "Open vSwitch Manual"
812560d7 14.\" This program's name:
3b135da3 15.ds PN ovs\-vsctl
812560d7
BP
16.\" SSL peer program's name:
17.ds SN ovsdb\-server
3b135da3
BP
18.
19.SH NAME
20ovs\-vsctl \- utility for querying and configuring \fBovs\-vswitchd\fR
21.
22.SH SYNOPSIS
204bad29
BP
23\fBovs\-vsctl\fR [\fIoptions\fR] \fB\-\-\fR [\fIoptions\fR] \fIcommand
24\fR[\fIargs\fR] [\fB\-\-\fR [\fIoptions\fR] \fIcommand \fR[\fIargs\fR]]...
3b135da3
BP
25.
26.SH DESCRIPTION
dfbe07ba 27The \fBovs\-vsctl\fR program configures \fBovs\-vswitchd\fR(8) by
5aa75474
BP
28providing a high\-level interface to its configuration database.
29See \fBovs\-vswitchd.conf.db\fR(5) for comprehensive documentation of
30the database schema.
31.PP
32\fBovs\-vsctl\fR connects to an \fBovsdb\-server\fR process that
33maintains an Open vSwitch configuration database. Using this
34connection, it queries and possibly applies changes to the database,
35depending on the supplied commands. Then, if it applied any changes,
36by default it waits until \fBovs\-vswitchd\fR has finished
37reconfiguring itself before it exits. (If you use \fBovs\-vsctl\fR
38when \fBovs\-vswitchd\fR is not running, use \fB\-\-no\-wait\fR.)
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.
204bad29
BP
42.PP
43The \fBovs\-vsctl\fR command line begins with global options (see
44\fBOPTIONS\fR below for details). The global options are followed by
45one or more commands. Each command should begin with \fB\-\-\fR by
401d5a6d
BP
46itself as a command-line argument, to separate it from the following
47commands. (The \fB\-\-\fR before the first command is optional.) The
48command
204bad29
BP
49itself starts with command-specific options, if any, followed by the
50command name and any arguments. See \fBEXAMPLES\fR below for syntax
51examples.
3b135da3
BP
52.
53.SS "Linux VLAN Bridging Compatibility"
54The \fBovs\-vsctl\fR program supports the model of a bridge
55implemented by Open vSwitch, in which a single bridge supports ports
56on multiple VLANs. In this model, each port on a bridge is either a
57trunk port that potentially passes packets tagged with 802.1Q headers
58that designate VLANs or it is assigned a single implicit VLAN that is
59never tagged with an 802.1Q header.
60.PP
61For compatibility with software designed for the Linux bridge,
62\fBovs\-vsctl\fR also supports a model in which traffic associated
63with a given 802.1Q VLAN is segregated into a separate bridge. A
64special form of the \fBadd\-br\fR command (see below) creates a ``fake
65bridge'' within an Open vSwitch bridge to simulate this behavior.
66When such a ``fake bridge'' is active, \fBovs\-vsctl\fR will treat it
67much like a bridge separate from its ``parent bridge,'' but the actual
68implementation in Open vSwitch uses only a single bridge, with ports on
69the fake bridge assigned the implicit VLAN of the fake bridge of which
5341d046
BP
70they are members. (A fake bridge for VLAN 0 receives packets that
71have no 802.1Q tag or a tag with VLAN 0.)
3b135da3
BP
72.
73.SH OPTIONS
74.
460aad80
BP
75The following options affect the behavior \fBovs\-vsctl\fR as a whole.
76Some individual commands also accept their own options, which are
77given just before the command name. If the first command on the
78command line has options, then those options must be separated from
79the global options by \fB\-\-\fR.
3b135da3 80.
dfbe07ba
BP
81.IP "\fB\-\-db=\fIserver\fR"
82Sets \fIserver\fR as the database server that \fBovs\-vsctl\fR
83contacts to query or modify configuration. The default is
bc391960 84\fBunix:@RUNDIR@/db.sock\fR. \fIserver\fR must take one of the
dfbe07ba
BP
85following forms:
86.RS
9467fe62 87.so ovsdb/remote-active.man
c9f3f37a 88.so ovsdb/remote-passive.man
dfbe07ba 89.RE
9467fe62 90.
dfbe07ba
BP
91.IP "\fB\-\-no\-wait\fR"
92Prevents \fBovs\-vsctl\fR from waiting for \fBovs\-vswitchd\fR to
93reconfigure itself according to the the modified database. This
94option should be used if \fBovs\-vswitchd\fR is not running;
4e312e69 95otherwise, \fBovs\-vsctl\fR will not exit until \fBovs\-vswitchd\fR
dfbe07ba 96starts.
3b135da3 97.IP
dfbe07ba
BP
98This option has no effect if the commands specified do not change the
99database.
3b135da3 100.
37c84020
BP
101.IP "\fB\-\-no\-syslog\fR"
102By default, \fBovs\-vsctl\fR logs its arguments and the details of any
103changes that it makes to the system log. This option disables this
104logging.
dfbe07ba 105.IP
ae9a3235 106This option is equivalent to \fB\-\-verbose=vsctl:syslog:warn\fR.
dfbe07ba 107.
2792c2ad 108.IP "\fB\-\-oneline\fR"
4d14e30f 109Modifies the output format so that the output for each command is printed
2792c2ad 110on a single line. New-line characters that would otherwise separate
4d14e30f 111lines are printed as \fB\\n\fR, and any instances of \fB\\\fR that
2792c2ad 112would otherwise appear in the output are doubled.
4d14e30f 113Prints a blank line for each command that has no output.
e051b42c
BP
114This option does not affect the formatting of output from the
115\fBlist\fR or \fBfind\fR commands; see \fBTable Formatting Options\fR
116below.
37c84020 117.
577aebdf
BP
118.IP "\fB\-\-dry\-run\fR"
119Prevents \fBovs\-vsctl\fR from actually modifying the database.
120.
4e312e69
BP
121.IP "\fB\-t \fIsecs\fR"
122.IQ "\fB\-\-timeout=\fIsecs\fR"
6b7b9d34
BP
123By default, or with a \fIsecs\fR of \fB0\fR, \fBovs\-vsctl\fR waits
124forever for a response from the database. This option limits runtime
125to approximately \fIsecs\fR seconds. If the timeout expires,
126\fBovs\-vsctl\fR will exit with a \fBSIGALRM\fR signal. (A timeout
127would normally happen only if the database cannot be contacted, or if
128the system is overloaded.)
342045e1 129.
fba6bd1d
BP
130.IP "\fB\-\-retry\fR"
131Without this option, if \fBovs\-vsctl\fR connects outward to the
132database server (the default) then \fBovs\-vsctl\fR will try to
133connect once and exit with an error if the connection fails (which
134usually means that \fBovsdb\-server\fR is not running).
135.IP
136With this option, or if \fB\-\-db\fR specifies that \fBovs\-vsctl\fR
137should listen for an incoming connection from the database server,
138then \fBovs\-vsctl\fR will wait for a connection to the database
139forever.
140.IP
141Regardless of this setting, \fB\-\-timeout\fR always limits how long
142\fBovs\-vsctl\fR will wait.
143.
e051b42c
BP
144.SS "Table Formatting Options"
145These options control the format of output from the \fBlist\fR and
146\fBfind\fR commands.
147.so lib/table.man
148.
ac300505 149.SS "Public Key Infrastructure Options"
84ee7bcf 150.so lib/ssl.man
812560d7
BP
151.so lib/ssl-bootstrap.man
152.so lib/ssl-peer-ca-cert.man
dfbe07ba
BP
153.so lib/vlog.man
154.
3b135da3
BP
155.SH COMMANDS
156The commands implemented by \fBovs\-vsctl\fR are described in the
157sections below.
524555d1
BP
158.SS "Open vSwitch Commands"
159These commands work with an Open vSwitch as a whole.
160.
161.IP "\fBinit\fR"
162Initializes the Open vSwitch database, if it is empty. If the
163database has already been initialized, this command has no effect.
164.IP
165Any successful \fBovs\-vsctl\fR command automatically initializes the
166Open vSwitch database if it is empty. This command is provided to
167initialize the database without executing any other command.
3b135da3 168.
9b1735a7
BP
169.IP "\fBshow\fR"
170Prints a brief overview of the database contents.
171.
18ee958b 172.IP "\fBemer\-reset\fR"
26b31540
BP
173Reset the configuration into a clean state. It deconfigures OpenFlow
174controllers, OVSDB servers, and SSL, and deletes port mirroring,
29089a54
RL
175\fBfail_mode\fR, NetFlow, sFlow, and IPFIX configuration. This
176command also removes all \fBother\-config\fR keys from all database
177records, except that \fBother\-config:hwaddr\fR is preserved if it is
178present in a Bridge record. Other networking configuration is left
179as-is.
18ee958b 180.
3b135da3
BP
181.SS "Bridge Commands"
182These commands examine and manipulate Open vSwitch bridges.
183.
aeee85aa 184.IP "[\fB\-\-may\-exist\fR] \fBadd\-br \fIbridge\fR"
3b135da3
BP
185Creates a new bridge named \fIbridge\fR. Initially the bridge will
186have no ports (other than \fIbridge\fR itself).
aeee85aa
BP
187.IP
188Without \fB\-\-may\-exist\fR, attempting to create a bridge that
cefb3cc6
BP
189exists is an error. With \fB\-\-may\-exist\fR, this command does
190nothing if \fIbridge\fR already exists as a real bridge.
3b135da3 191.
aeee85aa 192.IP "[\fB\-\-may\-exist\fR] \fBadd\-br \fIbridge parent vlan\fR"
3b135da3
BP
193Creates a ``fake bridge'' named \fIbridge\fR within the existing Open
194vSwitch bridge \fIparent\fR, which must already exist and must not
195itself be a fake bridge. The new fake bridge will be on 802.1Q VLAN
5341d046 196\fIvlan\fR, which must be an integer between 0 and 4095. Initially
3b135da3 197\fIbridge\fR will have no ports (other than \fIbridge\fR itself).
aeee85aa
BP
198.IP
199Without \fB\-\-may\-exist\fR, attempting to create a bridge that
cefb3cc6
BP
200exists is an error. With \fB\-\-may\-exist\fR, this command does
201nothing if \fIbridge\fR already exists as a VLAN bridge under
202\fIparent\fR for \fIvlan\fR.
3b135da3 203.
460aad80 204.IP "[\fB\-\-if\-exists\fR] \fBdel\-br \fIbridge\fR"
3b135da3
BP
205Deletes \fIbridge\fR and all of its ports. If \fIbridge\fR is a real
206bridge, this command also deletes any fake bridges that were created
207with \fIbridge\fR as parent, including all of their ports.
460aad80
BP
208.IP
209Without \fB\-\-if\-exists\fR, attempting to delete a bridge that does
210not exist is an error. With \fB\-\-if\-exists\fR, attempting to
211delete a bridge that does not exist has no effect.
3b135da3 212.
515d830a 213.IP "[\fB\-\-real\fR|\fB\-\-fake\fR] \fBlist\-br\fR"
3b135da3 214Lists all existing real and fake bridges on standard output, one per
515d830a
JP
215line. With \fB\-\-real\fR or \fB\-\-fake\fR, only bridges of that type
216are returned.
3b135da3
BP
217.
218.IP "\fBbr\-exists \fIbridge\fR"
219Tests whether \fIbridge\fR exists as a real or fake bridge. If so,
220\fBovs\-vsctl\fR exits successfully with exit code 0. If not,
221\fBovs\-vsctl\fR exits unsuccessfully with exit code 2.
222.
8e58fa9a
BP
223.IP "\fBbr\-to\-vlan \fIbridge\fR"
224If \fIbridge\fR is a fake bridge, prints the bridge's 802.1Q VLAN as a
225decimal integer. If \fIbridge\fR is a real bridge, prints 0.
226.
227.IP "\fBbr\-to\-parent \fIbridge\fR"
228If \fIbridge\fR is a fake bridge, prints the name of its parent
229bridge. If \fIbridge\fR is a real bridge, print \fIbridge\fR.
230.
457e1eb0
BP
231.IP "\fBbr\-set\-external\-id \fIbridge key\fR [\fIvalue\fR]"
232Sets or clears an ``external ID'' value on \fIbridge\fR. These values
233are intended to identify entities external to Open vSwitch with which
234\fIbridge\fR is associated, e.g. the bridge's identifier in a
235virtualization management platform. The Open vSwitch database schema
236specifies well-known \fIkey\fR values, but \fIkey\fR and \fIvalue\fR
237are otherwise arbitrary strings.
238.IP
239If \fIvalue\fR is specified, then \fIkey\fR is set to \fIvalue\fR for
240\fIbridge\fR, overwriting any previous value. If \fIvalue\fR is
241omitted, then \fIkey\fR is removed from \fIbridge\fR's set of external
242IDs (if it was present).
e328faad
BP
243.IP
244For real bridges, the effect of this command is similar to that of a
245\fBset\fR or \fBremove\fR command in the \fBexternal\-ids\fR column of
246the \fBBridge\fR table. For fake bridges, it actually modifies keys
247with names prefixed by \fBfake\-bridge\-\fR in the \fBPort\fR table.
457e1eb0
BP
248.
249.IP "\fBbr\-get\-external\-id \fIbridge\fR [\fIkey\fR]"
250Queries the external IDs on \fIbridge\fR. If \fIkey\fR is specified,
251the output is the value for that \fIkey\fR or the empty string if
252\fIkey\fR is unset. If \fIkey\fR is omitted, the output is
253\fIkey\fB=\fIvalue\fR, one per line, for each key-value pair.
e328faad
BP
254.IP
255For real bridges, the effect of this command is similar to that of a
256\fBget\fR command in the \fBexternal\-ids\fR column of the
257\fBBridge\fR table. For fake bridges, it queries keys with names
258prefixed by \fBfake\-bridge\-\fR in the \fBPort\fR table.
457e1eb0 259.
3b135da3
BP
260.SS "Port Commands"
261.
262These commands examine and manipulate Open vSwitch ports. These
263commands treat a bonded port as a single entity.
264.
265.IP "\fBlist\-ports \fIbridge\fR"
266Lists all of the ports within \fIbridge\fR on standard output, one per
267line. The local port \fIbridge\fR is not included in the list.
268.
18b239f5 269.IP "[\fB\-\-may\-exist\fR] \fBadd\-port \fIbridge port \fR[\fIcolumn\fR[\fB:\fIkey\fR]\fR=\fIvalue\fR]\&...\fR"
3b135da3
BP
270Creates on \fIbridge\fR a new port named \fIport\fR from the network
271device of the same name.
bb1c67c8 272.IP
18b239f5
BP
273Optional arguments set values of column in the Port record created by
274the command. For example, \fBtag=9\fR would make the port an access
275port for VLAN 9. The syntax is the same as that for the \fBset\fR
276command (see \fBDatabase Commands\fR below).
277.IP
bb1c67c8 278Without \fB\-\-may\-exist\fR, attempting to create a port that exists
cefb3cc6
BP
279is an error. With \fB\-\-may\-exist\fR, this command does nothing if
280\fIport\fR already exists on \fIbridge\fR and is not a bonded port.
3b135da3 281.
18b239f5 282.IP "[\fB\-\-fake\-iface\fR] \fBadd\-bond \fIbridge port iface\fR\&... [\fIcolumn\fR[\fB:\fIkey\fR]\fR=\fIvalue\fR]\&...\fR"
3b135da3
BP
283Creates on \fIbridge\fR a new port named \fIport\fR that bonds
284together the network devices given as each \fIiface\fR. At least two
285interfaces must be named.
b4182c7f 286.IP
18b239f5
BP
287Optional arguments set values of column in the Port record created by
288the command. The syntax is the same as that for the \fBset\fR command
289(see \fBDatabase Commands\fR below).
290.IP
b4182c7f
JP
291With \fB\-\-fake\-iface\fR, a fake interface with the name \fIport\fR is
292created. This should only be used for compatibility with legacy
293software that requires it.
bb1c67c8
BP
294.IP
295Without \fB\-\-may\-exist\fR, attempting to create a port that exists
cefb3cc6
BP
296is an error. With \fB\-\-may\-exist\fR, this command does nothing if
297\fIport\fR already exists on \fIbridge\fR and bonds together exactly
298the specified interfaces.
3b135da3 299.
460aad80 300.IP "[\fB\-\-if\-exists\fR] \fBdel\-port \fR[\fIbridge\fR] \fIport\fR"
3d1b9636
BP
301Deletes \fIport\fR. If \fIbridge\fR is omitted, \fIport\fR is removed
302from whatever bridge contains it; if \fIbridge\fR is specified, it
303must be the real or fake bridge that contains \fIport\fR.
460aad80
BP
304.IP
305Without \fB\-\-if\-exists\fR, attempting to delete a port that does
306not exist is an error. With \fB\-\-if\-exists\fR, attempting to
307delete a port that does not exist has no effect.
3b135da3 308.
7c79588e
BP
309.IP "[\fB\-\-if\-exists\fR] \fB\-\-with\-iface del\-port \fR[\fIbridge\fR] \fIiface\fR"
310Deletes the port named \fIiface\fR or that has an interface named
311\fIiface\fR. If \fIbridge\fR is omitted, the port is removed from
312whatever bridge contains it; if \fIbridge\fR is specified, it must be
313the real or fake bridge that contains the port.
314.IP
315Without \fB\-\-if\-exists\fR, attempting to delete the port for an
316interface that does not exist is an error. With \fB\-\-if\-exists\fR,
317attempting to delete the port for an interface that does not exist has
318no effect.
319.
3b135da3
BP
320.IP "\fBport\-to\-br \fIport\fR"
321Prints the name of the bridge that contains \fIport\fR on standard
322output.
323.
324.SS "Interface Commands"
325.
326These commands examine the interfaces attached to an Open vSwitch
327bridge. These commands treat a bonded port as a collection of two or
328more interfaces, rather than as a single port.
329.
330.IP "\fBlist\-ifaces \fIbridge\fR"
331Lists all of the interfaces within \fIbridge\fR on standard output,
332one per line. The local port \fIbridge\fR is not included in the
333list.
334.
335.IP "\fBiface\-to\-br \fIiface\fR"
336Prints the name of the bridge that contains \fIiface\fR on standard
337output.
457e1eb0 338.
5aa00635
JP
339.SS "OpenFlow Controller Connectivity"
340.
341\fBovs\-vswitchd\fR can perform all configured bridging and switching
c0de82d9
JP
342locally, or it can be configured to communicate with one or more
343external OpenFlow controllers. The switch is typically configured to
344connect to a primary controller that takes charge of the bridge's flow
345table to implement a network policy. In addition, the switch can be
346configured to listen to connections from service controllers. Service
347controllers are typically used for occasional support and maintenance,
348e.g. with \fBovs\-ofctl\fR.
5aa00635 349.
1a048029 350.IP "\fBget\-controller\fR \fIbridge\fR"
5aa00635
JP
351Prints the configured controller target.
352.
1a048029 353.IP "\fBdel\-controller\fR \fIbridge\fR"
5aa00635
JP
354Deletes the configured controller target.
355.
1a048029
JP
356.IP "\fBset\-controller\fR \fIbridge\fR \fItarget\fR\&..."
357Sets the configured controller target or targets. Each \fItarget\fR may
358use any of the following forms:
5aa00635
JP
359.
360.RS
84ee7bcf 361.so lib/vconn-active.man
c0de82d9 362.so lib/vconn-passive.man
5aa00635 363.RE
84ee7bcf 364.
5aa00635 365.ST "Controller Failure Settings"
89365653 366.PP
5aa00635
JP
367When a controller is configured, it is, ordinarily, responsible for
368setting up all flows on the switch. Thus, if the connection to
369the controller fails, no new network connections can be set up. If
370the connection to the controller stays down long enough, no packets
371can pass through the switch at all.
63f08492 372.PP
5aa00635
JP
373If the value is \fBstandalone\fR, or if neither of these settings
374is set, \fBovs\-vswitchd\fR will take over
375responsibility for setting up
376flows when no message has been received from the controller for three
dd1dcc23 377times the inactivity probe interval. In this mode,
5aa00635
JP
378\fBovs\-vswitchd\fR causes the datapath to act like an ordinary
379MAC-learning switch. \fBovs\-vswitchd\fR will continue to retry connecting
380to the controller in the background and, when the connection succeeds,
381it discontinues its standalone behavior.
63f08492 382.PP
5aa00635
JP
383If this option is set to \fBsecure\fR, \fBovs\-vswitchd\fR will not
384set up flows on its own when the controller connection fails.
385.
1a048029 386.IP "\fBget\-fail\-mode\fR \fIbridge\fR"
5aa00635
JP
387Prints the configured failure mode.
388.
1a048029 389.IP "\fBdel\-fail\-mode\fR \fIbridge\fR"
5aa00635
JP
390Deletes the configured failure mode.
391.
1a048029 392.IP "\fBset\-fail\-mode\fR \fIbridge\fR \fBstandalone\fR|\fBsecure\fR"
5aa00635
JP
393Sets the configured failure mode.
394.
24b8b259
AE
395.SS "Manager Connectivity"
396.
289df16d
AE
397These commands manipulate the \fBmanager_options\fR column in the
398\fBOpen_vSwitch\fR table and rows in the \fBManagers\fR table. When
399\fBovsdb\-server\fR is configured to use the \fBmanager_options\fR column for
400OVSDB connections (as described in \fBINSTALL.Linux\fR and in the startup
401scripts provided with Open vSwitch), this allows the administrator to use
24b8b259
AE
402\fBovs\-vsctl\fR to configure database connections.
403.
404.IP "\fBget\-manager\fR"
405Prints the configured manager(s).
406.
407.IP "\fBdel\-manager\fR"
408Deletes the configured manager(s).
409.
410.IP "\fBset\-manager\fR \fItarget\fR\&..."
411Sets the configured manager target or targets. Each \fItarget\fR may
412use any of the following forms:
413.
414.RS
415.so ovsdb/remote-active.man
416.so ovsdb/remote-passive.man
417.RE
418.
dd8ac6fe
JP
419.SS "SSL Configuration"
420When \fBovs\-vswitchd\fR is configured to connect over SSL for management or
421controller connectivity, the following parameters are required:
422.TP
ae9a3235 423\fIprivate-key\fR
dd8ac6fe
JP
424Specifies a PEM file containing the private key used as the virtual
425switch's identity for SSL connections to the controller.
426.TP
ae9a3235 427\fIcertificate\fR
dd8ac6fe
JP
428Specifies a PEM file containing a certificate, signed by the
429certificate authority (CA) used by the controller and manager, that
430certifies the virtual switch's private key, identifying a trustworthy
431switch.
432.TP
ae9a3235 433\fIca-cert\fR
dd8ac6fe
JP
434Specifies a PEM file containing the CA certificate used to verify that
435the virtual switch is connected to a trustworthy controller.
436.PP
437These files are read only once, at \fBovs\-vswitchd\fR startup time. If
438their contents change, \fBovs\-vswitchd\fR must be killed and restarted.
439.PP
440These SSL settings apply to all SSL connections made by the virtual
441switch.
442.
443.IP "\fBget\-ssl\fR"
444Prints the SSL configuration.
445.
446.IP "\fBdel\-ssl\fR"
447Deletes the current SSL configuration.
448.
449.IP "[\fB\-\-bootstrap\fR] \fBset\-ssl\fR \fIprivate-key\fR \fIcertificate\fR \fIca-cert\fR"
450Sets the SSL configuration. The \fB\-\-bootstrap\fR option is described
451below.
452.
453.ST "CA Certificate Bootstrap"
89365653 454.PP
dd8ac6fe 455Ordinarily, all of the files named in the SSL configuration must exist
40a09c8a
BP
456when \fBovs\-vswitchd\fR starts. However, if the \fIca-cert\fR file
457does not exist and the \fB\-\-bootstrap\fR
dd8ac6fe
JP
458option is given, then \fBovs\-vswitchd\fR will attempt to obtain the
459CA certificate from the controller on its first SSL connection and
460save it to the named PEM file. If it is successful, it will
461immediately drop the connection and reconnect, and from then on all
462SSL connections must be authenticated by a certificate signed by the
463CA certificate thus obtained.
464.PP
465\fBThis option exposes the SSL connection to a man-in-the-middle
466attack obtaining the initial CA certificate\fR, but it may be useful
467for bootstrapping.
468.PP
469This option is only useful if the controller sends its CA certificate
470as part of the SSL certificate chain. The SSL protocol does not
471require the controller to send the CA certificate, but
a946ed39 472\fBovs\-controller\fR(8) can be configured to do so with the
4e312e69 473\fB\-\-peer\-ca\-cert\fR option.
dd8ac6fe 474.
ad83bfa6
BP
475.SS "Database Commands"
476.
477These commands query and modify the contents of \fBovsdb\fR tables.
478They are a slight abstraction of the \fBovsdb\fR interface and as such
479they operate at a lower level than other \fBovs\-vsctl\fR commands.
480.PP
481.ST "Identifying Tables, Records, and Columns"
482.PP
483Each of these commands has a \fItable\fR parameter to identify a table
484within the database. Many of them also take a \fIrecord\fR parameter
485that identifies a particular record within a table. The \fIrecord\fR
486parameter may be the UUID for a record, and many tables offer
487additional ways to identify records. Some commands also take
488\fIcolumn\fR parameters that identify a particular field within the
489records in a table.
490.PP
491The following tables are currently defined:
492.IP "\fBOpen_vSwitch\fR"
493Global configuration for an \fBovs\-vswitchd\fR. This table contains
494exactly one record, identified by specifying \fB.\fR as the record
495name.
496.IP "\fBBridge\fR"
497Configuration for a bridge within an Open vSwitch. Records may be
498identified by bridge name.
499.IP "\fBPort\fR"
500A bridge port. Records may be identified by port name.
501.IP "\fBInterface\fR"
502A network device attached to a port. Records may be identified by
503name.
254750ce
BP
504.IP "\fBFlow_Table\fR"
505Configuration for a particular OpenFlow flow table. Records may be
506identified by name.
7b63fa03 507.IP "\fBQoS\fR"
c5f341ab
BP
508Quality-of-service configuration for a \fBPort\fR. Records may be
509identified by port name.
7b63fa03 510.IP "\fBQueue\fR"
c5f341ab
BP
511Configuration for one queue within a \fBQoS\fR configuration. Records
512may only be identified by UUID.
ef1e753e
BP
513.IP "\fBMirror\fR"
514A port mirroring configuration attached to a bridge. Records may be
515identified by mirror name.
ad83bfa6
BP
516.IP "\fBController\fR"
517Configuration for an OpenFlow controller. A controller attached to a
1a048029 518particular bridge may be identified by the bridge's name.
94db5407
BP
519.IP "\fBManager\fR"
520Configuration for an OVSDB connection. Records may be identified
521by target (e.g. \fBtcp:1.2.3.4\fR).
ad83bfa6
BP
522.IP "\fBNetFlow\fR"
523A NetFlow configuration attached to a bridge. Records may be
ef1e753e
BP
524identified by bridge name.
525.IP "\fBSSL\fR"
526The global SSL configuration for \fBovs\-vswitchd\fR. The record
527attached to the \fBOpen_vSwitch\fR table may be identified by
528specifying \fB.\fR as the record name.
529.IP "\fBsFlow\fR"
29089a54 530An sFlow exporter configuration attached to a bridge. Records may be
ad83bfa6 531identified by bridge name.
29089a54
RL
532.IP "\fBIPFIX\fR"
533An IPFIX exporter configuration attached to a bridge. Records may be
534identified by bridge name.
535.IP "\fBFlow_Sample_Collector_Set\fR"
536An IPFIX exporter configuration attached to a bridge for sampling
537packets on a per-flow basis using OpenFlow \fBsample\fR actions.
ad83bfa6 538.PP
e111e681
BP
539Record names must be specified in full and with correct
540capitalization. Names of tables and columns are not case-sensitive,
541and \fB\-\-\fR and \fB_\fR are treated interchangeably. Unique
5de48440 542abbreviations are acceptable, e.g. \fBnet\fR or \fBn\fR is sufficient
ad83bfa6
BP
543to identify the \fBNetFlow\fR table.
544.
545.ST "Database Values"
89365653 546.PP
ad83bfa6
BP
547Each column in the database accepts a fixed type of data. The
548currently defined basic types, and their representations, are:
549.IP "integer"
550A decimal integer in the range \-2**63 to 2**63\-1, inclusive.
551.IP "real"
552A floating-point number.
553.IP "Boolean"
554True or false, written \fBtrue\fR or \fBfalse\fR, respectively.
555.IP "string"
556An arbitrary Unicode string, except that null bytes are not allowed.
557Quotes are optional for most strings that begin with an English letter
558or underscore and consist only of letters, underscores, hyphens, and
559periods. However, \fBtrue\fR and \fBfalse\fR and strings that match
560the syntax of UUIDs (see below) must be enclosed in double quotes to
561distinguish them from other basic types. When double quotes are used,
562the syntax is that of strings in JSON, e.g. backslashes may be used to
563escape special characters. The empty string must be represented as a
564pair of double quotes (\fB""\fR).
565.IP "UUID"
ce5a3e38
BP
566Either a universally unique identifier in the style of RFC 4122,
567e.g. \fBf81d4fae\-7dec\-11d0\-a765\-00a0c91e6bf6\fR, or an \fB@\fIname\fR
aed133bf 568defined by a \fBget\fR or \fBcreate\fR command within the same \fBovs\-vsctl\fR
ce5a3e38 569invocation.
ad83bfa6
BP
570.PP
571Multiple values in a single column may be separated by spaces or a
572single comma. When multiple values are present, duplicates are not
573allowed, and order is not important. Conversely, some database
574columns can have an empty set of values, represented as \fB[]\fR, and
575square brackets may optionally enclose other non-empty sets or single
576values as well.
577.PP
578A few database columns are ``maps'' of key-value pairs, where the key
579and the value are each some fixed database type. These are specified
580in the form \fIkey\fB=\fIvalue\fR, where \fIkey\fR and \fIvalue\fR
581follow the syntax for the column's key type and value type,
582respectively. When multiple pairs are present (separated by spaces or
583a comma), duplicate keys are not allowed, and again the order is not
584important. Duplicate values are allowed. An empty map is represented
424202bc
BP
585as \fB{}\fR. Curly braces may optionally enclose non-empty maps as
586well (but use quotes to prevent the shell from expanding
587\fBother-config={0=x,1=y}\fR into \fBother-config=0=x
588other-config=1=y\fR, which may not have the desired effect).
ad83bfa6
BP
589.
590.ST "Database Command Syntax"
e99d41f7
BP
591.
592.IP "[\fB\-\-if\-exists\fR] [\fB\-\-columns=\fIcolumn\fR[\fB,\fIcolumn\fR]...] \fBlist \fItable \fR[\fIrecord\fR]..."
9591fefe 593Lists the data in each specified \fIrecord\fR. If no
ad83bfa6 594records are specified, lists all the records in \fItable\fR.
3ef917b5 595.IP
9591fefe
BP
596If \fB\-\-columns\fR is specified, only the requested columns are
597listed, in the specified order. Otherwise, all columns are listed, in
598alphabetical order by column name.
e99d41f7
BP
599.IP
600Without \fB\-\-if-exists\fR, it is an error if any specified
601\fIrecord\fR does not exist. With \fB\-\-if-exists\fR, the command
602ignores any \fIrecord\fR that does not exist, without producing any
603output.
9591fefe 604.
0a140468
BP
605.IP "[\fB\-\-columns=\fIcolumn\fR[\fB,\fIcolumn\fR]...] \fBfind \fItable \fR[\fIcolumn\fR[\fB:\fIkey\fR]\fB=\fIvalue\fR]..."
606Lists the data in each record in \fItable\fR whose \fIcolumn\fR equals
607\fIvalue\fR or, if \fIkey\fR is specified, whose \fIcolumn\fR contains
2a9537e2
BP
608a \fIkey\fR with the specified \fIvalue\fR. The following operators
609may be used where \fB=\fR is written in the syntax summary:
610.RS
611.IP "\fB= != < > <= >=\fR"
612Selects records in which \fIcolumn\fR[\fB:\fIkey\fR] equals, does not
613equal, is less than, is greater than, is less than or equal to, or is
614greater than or equal to \fIvalue\fR, respectively.
615.IP
616Consider \fIcolumn\fR[\fB:\fIkey\fR] and \fIvalue\fR as sets of
617elements. Identical sets are considered equal. Otherwise, if the
618sets have different numbers of elements, then the set with more
619elements is considered to be larger. Otherwise, consider a element
620from each set pairwise, in increasing order within each set. The
621first pair that differs determines the result. (For a column that
622contains key-value pairs, first all the keys are compared, and values
623are considered only if the two sets contain identical keys.)
624.IP "\fB{=} {!=}\fR"
625Test for set equality or inequality, respectively.
626.IP "\fB{<=}\fR"
627Selects records in which \fIcolumn\fR[\fB:\fIkey\fR] is a subset of
628\fIvalue\fR. For example, \fBflood-vlans{<=}1,2\fR selects records in
629which the \fBflood-vlans\fR column is the empty set or contains 1 or 2
630or both.
631.IP "\fB{<}\fR"
632Selects records in which \fIcolumn\fR[\fB:\fIkey\fR] is a proper
633subset of \fIvalue\fR. For example, \fBflood-vlans{<}1,2\fR selects
634records in which the \fBflood-vlans\fR column is the empty set or
635contains 1 or 2 but not both.
636.IP "\fB{>=} {>}\fR"
637Same as \fB{<=}\fR and \fB{<}\fR, respectively, except that the
638relationship is reversed. For example, \fBflood-vlans{>=}1,2\fR
639selects records in which the \fBflood-vlans\fR column contains both 1
640and 2.
641.RE
642.IP
643For arithmetic operators (\fB= != < > <= >=\fR), when \fIkey\fR is
644specified but a particular record's \fIcolumn\fR does not contain
645\fIkey\fR, the record is always omitted from the results. Thus, the
646condition \fBother-config:mtu!=1500\fR matches records that have a
647\fBmtu\fR key whose value is not 1500, but not those that lack an
648\fBmtu\fR key.
649.IP
650For the set operators, when \fIkey\fR is specified but a particular
651record's \fIcolumn\fR does not contain \fIkey\fR, the comparison is
652done against an empty set. Thus, the condition
653\fBother-config:mtu{!=}1500\fR matches records that have a \fBmtu\fR
654key whose value is not 1500 and those that lack an \fBmtu\fR key.
655.IP
656Don't forget to escape \fB<\fR or \fB>\fR from interpretation by the
657shell.
0a140468
BP
658.IP
659If \fB\-\-columns\fR is specified, only the requested columns are
660listed, in the specified order. Otherwise all columns are listed, in
661alphabetical order by column name.
9591fefe 662.IP
3ef917b5
BP
663The UUIDs shown for rows created in the same \fBovs\-vsctl\fR
664invocation will be wrong.
ad83bfa6 665.
e99d41f7 666.IP "[\fB\-\-if\-exists\fR] [\fB\-\-id=@\fIname\fR] \fBget \fItable record \fR[\fIcolumn\fR[\fB:\fIkey\fR]]..."
ad83bfa6
BP
667Prints the value of each specified \fIcolumn\fR in the given
668\fIrecord\fR in \fItable\fR. For map columns, a \fIkey\fR may
669optionally be specified, in which case the value associated with
670\fIkey\fR in the column is printed, instead of the entire map.
870aeb4a 671.IP
e99d41f7
BP
672Without \fB\-\-if\-exists\fR, it is an error if \fIrecord\fR does not
673exist or \fIkey\fR is specified, if \fIkey\fR does not exist in
674\fIrecord\fR. With \fB\-\-if\-exists\fR, a missing \fIrecord\fR
675yields no output and a missing \fIkey\fR prints a blank line.
aed133bf
BP
676.IP
677If \fB@\fIname\fR is specified, then the UUID for \fIrecord\fR may be
678referred to by that name later in the same \fBovs\-vsctl\fR
679invocation in contexts where a UUID is expected.
6d5abe94
BP
680.IP
681Both \fB\-\-id\fR and the \fIcolumn\fR arguments are optional, but
682usually at least one or the other should be specified. If both are
683omitted, then \fBget\fR has no effect except to verify that
684\fIrecord\fR exists in \fItable\fR.
e99d41f7
BP
685.IP
686\fB\-\-id\fR and \fB\-\-if\-exists\fR cannot be used together.
ad83bfa6 687.
e99d41f7 688.IP "[\fB\-\-if\-exists\fR] \fBset \fItable record column\fR[\fB:\fIkey\fR]\fB=\fIvalue\fR..."
ad83bfa6
BP
689Sets the value of each specified \fIcolumn\fR in the given
690\fIrecord\fR in \fItable\fR to \fIvalue\fR. For map columns, a
691\fIkey\fR may optionally be specified, in which case the value
692associated with \fIkey\fR in that column is changed (or added, if none
693exists), instead of the entire map.
e99d41f7
BP
694.IP
695Without \fB\-\-if-exists\fR, it is an error if \fIrecord\fR does not
696exist. With \fB\-\-if-exists\fR, this command does nothing if
697\fIrecord\fR does not exist.
ad83bfa6 698.
e99d41f7 699.IP "[\fB\-\-if\-exists\fR] \fBadd \fItable record column \fR[\fIkey\fB=\fR]\fIvalue\fR..."
ad83bfa6
BP
700Adds the specified value or key-value pair to \fIcolumn\fR in
701\fIrecord\fR in \fItable\fR. If \fIcolumn\fR is a map, then \fIkey\fR
702is required, otherwise it is prohibited. If \fIkey\fR already exists
703in a map column, then the current \fIvalue\fR is not replaced (use the
704\fBset\fR command to replace an existing value).
e99d41f7
BP
705.IP
706Without \fB\-\-if-exists\fR, it is an error if \fIrecord\fR does not
707exist. With \fB\-\-if-exists\fR, this command does nothing if
708\fIrecord\fR does not exist.
90c4bd00 709.
e99d41f7
BP
710.IP "[\fB\-\-if\-exists\fR] \fBremove \fItable record column \fR\fIvalue\fR..."
711.IQ "[\fB\-\-if\-exists\fR] \fBremove \fItable record column \fR\fIkey\fR..."
712.IQ "[\fB\-\-if\-exists\fR] \fBremove \fItable record column \fR\fIkey\fB=\fR\fIvalue\fR..."
90c4bd00
BP
713Removes the specified values or key-value pairs from \fIcolumn\fR in
714\fIrecord\fR in \fItable\fR. The first form applies to columns that
715are not maps: each specified \fIvalue\fR is removed from the column.
716The second and third forms apply to map columns: if only a \fIkey\fR
717is specified, then any key-value pair with the given \fIkey\fR is
718removed, regardless of its value; if a \fIvalue\fR is given then a
719pair is removed only if both key and value match.
720.IP
721It is not an error if the column does not contain the specified key or
722value or pair.
e99d41f7
BP
723.IP
724Without \fB\-\-if-exists\fR, it is an error if \fIrecord\fR does not
725exist. With \fB\-\-if-exists\fR, this command does nothing if
726\fIrecord\fR does not exist.
90c4bd00 727.
e99d41f7 728.IP "[\fB\-\-if\-exists\fR] \fBclear\fR \fItable record column\fR..."
90c4bd00
BP
729Sets each \fIcolumn\fR in \fIrecord\fR in \fItable\fR to the empty set
730or empty map, as appropriate. This command applies only to columns
731that are allowed to be empty.
e99d41f7
BP
732.IP
733Without \fB\-\-if-exists\fR, it is an error if \fIrecord\fR does not
734exist. With \fB\-\-if-exists\fR, this command does nothing if
735\fIrecord\fR does not exist.
90c4bd00 736.
4e312e69 737.IP "[\fB\-\-id=@\fIname\fR] \fBcreate\fR \fItable column\fR[\fB:\fIkey\fR]\fB=\fIvalue\fR..."
557e3718
BP
738Creates a new record in \fItable\fR and sets the initial values of
739each \fIcolumn\fR. Columns not explicitly set will receive their
3ef917b5 740default values. Outputs the UUID of the new row.
ce5a3e38
BP
741.IP
742If \fB@\fIname\fR is specified, then the UUID for the new row may be
743referred to by that name elsewhere in the same \fBovs\-vsctl\fR
744invocation in contexts where a UUID is expected. Such references may
745precede or follow the \fBcreate\fR command.
c5f341ab
BP
746.IP
747Records in the Open vSwitch database are significant only when they
748can be reached directly or indirectly from the \fBOpen_vSwitch\fR
749table. Except for records in the \fBQoS\fR or \fBQueue\fR tables,
750records that are not reachable from the \fBOpen_vSwitch\fR table are
751automatically deleted from the database. This deletion happens
752immediately, without waiting for additional \fBovs\-vsctl\fR commands
753or other database activity. Thus, a \fBcreate\fR command must
754generally be accompanied by additional commands \fIwithin the same
755\fBovs\-vsctl\fI invocation\fR to add a chain of references to the
756newly created record from the top-level \fBOpen_vSwitch\fR record.
757The \fBEXAMPLES\fR section gives some examples that show how to do
758this.
b7f74b6f 759.
0d0f05b9 760.IP "\fR[\fB\-\-if\-exists\fR] \fBdestroy \fItable record\fR..."
b7f74b6f
BP
761Deletes each specified \fIrecord\fR from \fItable\fR. Unless
762\fB\-\-if\-exists\fR is specified, each \fIrecord\fRs must exist.
eeb8467e
AS
763.IP "\fB\-\-all destroy \fItable\fR"
764Deletes all records from the \fItable\fR.
c5f341ab 765.IP
dcd1dbc5
BP
766The \fBdestroy\fR command is only useful for records in the \fBQoS\fR
767or \fBQueue\fR tables. Records in other tables are automatically
768deleted from the database when they become unreachable from the
769\fBOpen_vSwitch\fR table. This means that deleting the last reference
770to a record is sufficient for deleting the record itself. For records
771in these tables, \fBdestroy\fR is silently ignored. See the
772\fBEXAMPLES\fR section below for more information.
7db03f7c
BP
773.
774.IP "\fBwait\-until \fItable record \fR[\fIcolumn\fR[\fB:\fIkey\fR]\fB=\fIvalue\fR]..."
775Waits until \fItable\fR contains a record named \fIrecord\fR whose
776\fIcolumn\fR equals \fIvalue\fR or, if \fIkey\fR is specified, whose
777\fIcolumn\fR contains a \fIkey\fR with the specified \fIvalue\fR. Any
778of the operators \fB!=\fR, \fB<\fR, \fB>\fR, \fB<=\fR, or \fB>=\fR may
779be substituted for \fB=\fR to test for inequality, less than, greater
780than, less than or equal to, or greater than or equal to,
781respectively. (Don't forget to escape \fB<\fR or \fB>\fR from
782interpretation by the shell.)
783.IP
784If no \fIcolumn\fR[\fB:\fIkey\fR]\fB=\fIvalue\fR arguments are given,
785this command waits only until \fIrecord\fR exists. If more than one
786such argument is given, the command waits until all of them are
787satisfied.
788.IP
789Usually \fBwait\-until\fR should be placed at the beginning of a set
790of \fBovs\-vsctl\fR commands. For example, \fBwait\-until bridge br0
791\-\- get bridge br0 datapath_id\fR waits until a bridge named
792\fBbr0\fR is created, then prints its \fBdatapath_id\fR column,
793whereas \fBget bridge br0 datapath_id \-\- wait\-until bridge br0\fR
794will abort if no bridge named \fBbr0\fR exists when \fBovs\-vsctl\fR
795initially connects to the database.
796.IP
7db03f7c
BP
797Consider specifying \fB\-\-timeout=0\fR along with
798\fB\-\-wait\-until\fR, to prevent \fBovs\-vsctl\fR from terminating
799after waiting only at most 5 seconds.
ffd66ea9
BP
800.IP "\fBcomment \fR[\fIarg\fR]..."
801This command has no effect on behavior, but any database log record
802created by the command will include the command and its arguments.
4d14e30f
BP
803.SH "EXAMPLES"
804Create a new bridge named br0 and add port eth0 to it:
805.IP
4e312e69 806.B "ovs\-vsctl add\-br br0"
4d14e30f 807.br
4e312e69 808.B "ovs\-vsctl add\-port br0 eth0"
4d14e30f
BP
809.PP
810Alternatively, perform both operations in a single atomic transaction:
811.IP
4e312e69 812.B "ovs\-vsctl add\-br br0 \-\- add\-port br0 eth0"
460aad80
BP
813.PP
814Delete bridge \fBbr0\fR, reporting an error if it does not exist:
815.IP
816.B "ovs\-vsctl del\-br br0"
817.PP
401d5a6d 818Delete bridge \fBbr0\fR if it exists:
460aad80 819.IP
401d5a6d 820.B "ovs\-vsctl \-\-if\-exists del\-br br0"
ce5a3e38
BP
821.PP
822Set the \fBqos\fR column of the \fBPort\fR record for \fBeth0\fR to
823point to a new \fBQoS\fR record, which in turn points with its queue 0
824to a new \fBQueue\fR record:
825.IP
4e312e69 826.B "ovs\-vsctl \-\- set port eth0 qos=@newqos \-\- \-\-id=@newqos create qos type=linux\-htb other\-config:max\-rate=1000000 queues:0=@newqueue \-\- \-\-id=@newqueue create queue other\-config:min\-rate=1000000 other\-config:max\-rate=1000000"
bad973d7
BP
827.SH "CONFIGURATION COOKBOOK"
828.SS "Port Configuration"
829.PP
830Add an ``internal port'' \fBvlan10\fR to bridge \fBbr0\fR as a VLAN
831access port for VLAN 10, and configure it with an IP address:
832.IP
833.B "ovs\-vsctl add\-port br0 vlan10 tag=10 \-\- set Interface vlan10 type=internal"
834.IP
835.B "ifconfig vlan10 192.168.0.123"
3b135da3 836.
19a79607
BP
837.PP
838Add a GRE tunnel port \fBgre0\fR to remote IP address 1.2.3.4 to
839bridge \fBbr0\fR:
840.IP
841.B "ovs\-vsctl add\-port br0 gre0 \-\- set Interface gre0 type=gre options:remote_ip=1.2.3.4"
842.
bad973d7
BP
843.SS "Port Mirroring"
844.PP
845Mirror all packets received or sent on \fBeth0\fR or \fBeth1\fR onto
846\fBeth2\fR, assuming that all of those ports exist on bridge \fBbr0\fR
847(as a side-effect this causes any packets received on \fBeth2\fR to be
848ignored):
849.IP
850.B "ovs\-vsctl \-\- set Bridge br0 mirrors=@m \(rs"
851.IP
852.B "\-\- \-\-id=@eth0 get Port eth0 \(rs"
853.IP
854.B "\-\- \-\-id=@eth1 get Port eth1 \(rs"
855.IP
856.B "\-\- \-\-id=@eth2 get Port eth2 \(rs"
857.IP
858.B "\-\- \-\-id=@m create Mirror name=mymirror select-dst-port=@eth0,@eth1 select-src-port=@eth0,@eth1 output-port=@eth2"
859.PP
c5f341ab
BP
860Remove the mirror created above from \fBbr0\fR, which also destroys
861the Mirror record (since it is now unreferenced):
bad973d7 862.IP
9d2e7445
BP
863.B "ovs\-vsctl \-\- \-\-id=@rec get Mirror mymirror \(rs"
864.IP
865.B "\-\- remove Bridge br0 mirrors @rec"
866.PP
867The following simpler command also works:
868.IP
869.B "ovs\-vsctl clear Bridge br0 mirrors"
bad973d7
BP
870.SS "Quality of Service (QoS)"
871.PP
872Create a \fBlinux\-htb\fR QoS record that points to a few queues and
873use it on \fBeth0\fR and \fBeth1\fR:
874.IP
875.B "ovs\-vsctl \-\- set Port eth0 qos=@newqos \(rs"
876.IP
877.B "\-\- set Port eth1 qos=@newqos \(rs"
878.IP
879.B "\-\- \-\-id=@newqos create QoS type=linux\-htb other\-config:max\-rate=1000000000 queues=0=@q0,1=@q1 \(rs"
880.IP
881.B "\-\- \-\-id=@q0 create Queue other\-config:min\-rate=100000000 other\-config:max\-rate=100000000 \(rs"
882.IP
883.B "\-\- \-\-id=@q1 create Queue other\-config:min\-rate=500000000"
884.PP
885Deconfigure the QoS record above from \fBeth1\fR only:
886.IP
887.B "ovs\-vsctl clear Port eth1 qos"
888.PP
889To deconfigure the QoS record from both \fBeth0\fR and \fBeth1\fR and
c5f341ab
BP
890then delete the QoS record (which must be done explicitly because
891unreferenced QoS records are not automatically destroyed):
bad973d7
BP
892.IP
893.B "ovs\-vsctl \-\- destroy QoS eth0 \-\- clear Port eth0 qos \-\- clear Port eth1 qos"
894.PP
895(This command will leave two unreferenced Queue records in the
896database. To delete them, use "\fBovs\-vsctl list Queue\fR" to find
897their UUIDs, then "\fBovs\-vsctl destroy Queue \fIuuid1\fR
eeb8467e
AS
898\fIuuid2\fR" to destroy each of them or use
899"\fBovs\-vsctl -- --all destroy Queue\fR" to delete all records.)
b31bcf60
EJ
900.SS "Connectivity Monitoring"
901.PP
93b8df38 902Monitor connectivity to a remote maintenance point on eth0.
b31bcf60 903.IP
a6e198ea 904.B "ovs\-vsctl set Interface eth0 cfm_mpid=1"
b31bcf60 905.PP
93b8df38 906Deconfigure connectivity monitoring from above:
b31bcf60 907.IP
a6e198ea 908.B "ovs\-vsctl clear Interface eth0 cfm_mpid"
bad973d7
BP
909.SS "NetFlow"
910.PP
911Configure bridge \fBbr0\fR to send NetFlow records to UDP port 5566 on
912host 192.168.0.34, with an active timeout of 30 seconds:
913.IP
914.B "ovs\-vsctl \-\- set Bridge br0 netflow=@nf \(rs"
915.IP
916.B "\-\- \-\-id=@nf create NetFlow targets=\(rs\(dq192.168.0.34:5566\(rs\(dq active\-timeout=30"
917.PP
918Update the NetFlow configuration created by the previous command to
919instead use an active timeout of 60 seconds:
920.IP
921.B "ovs\-vsctl set NetFlow br0 active_timeout=60"
922.PP
c5f341ab
BP
923Deconfigure the NetFlow settings from \fBbr0\fR, which also destroys
924the NetFlow record (since it is now unreferenced):
bad973d7 925.IP
c5f341ab 926.B "ovs\-vsctl clear Bridge br0 netflow"
bad973d7
BP
927.SS "sFlow"
928.PP
929Configure bridge \fBbr0\fR to send sFlow records to a collector on
93010.0.0.1 at port 6343, using \fBeth1\fR\'s IP address as the source,
931with specific sampling parameters:
932.IP
933.B "ovs\-vsctl \-\- \-\-id=@s create sFlow agent=eth1 target=\(rs\(dq10.0.0.1:6343\(rs\(dq header=128 sampling=64 polling=10 \(rs"
934.IP
935.B "\-\- set Bridge br0 sflow=@s"
936.PP
f0f87cbd 937Deconfigure sFlow from \fBbr0\fR, which also destroys the sFlow record
c5f341ab 938(since it is now unreferenced):
bad973d7 939.IP
c5f341ab 940.B "ovs\-vsctl \-\- clear Bridge br0 sflow"
29089a54
RL
941.SS "IPFIX"
942.PP
943Configure bridge \fBbr0\fR to send one IPFIX flow record per packet
944sample to UDP port 4739 on host 192.168.0.34, with Observation Domain
978427a5
RL
945ID 123 and Observation Point ID 456, a flow cache active timeout of 1
946minute (60 seconds), and a maximum flow cache size of 13 flows:
29089a54
RL
947.IP
948.B "ovs\-vsctl \-\- set Bridge br0 ipfix=@i \(rs"
949.IP
978427a5 950.B "\-\- \-\-id=@i create IPFIX targets=\(rs\(dq192.168.0.34:4739\(rs\(dq obs_domain_id=123 obs_point_id=456 cache_active_timeout=60 cache_max_flows=13"
29089a54
RL
951.PP
952Deconfigure the IPFIX settings from \fBbr0\fR, which also destroys the
953IPFIX record (since it is now unreferenced):
954.IP
955.B "ovs\-vsctl clear Bridge br0 ipfix"
21f7563c
JP
956.SS "802.1D Spanning Tree Protocol (STP)"
957.PP
958Configure bridge \fBbr0\fR to participate in an 802.1D spanning tree:
959.IP
960.B "ovs\-vsctl set Bridge br0 stp_enable=true"
961.PP
962Set the bridge priority of \fBbr0\fR to 0x7800:
963.IP
964.B "ovs\-vsctl set Bridge br0 other_config:stp-priority=0x7800"
965.PP
966Set the path cost of port \fBeth0\fR to 10:
967.IP
968.B "ovs\-vsctl set Port eth0 other_config:stp-path-cost=10"
969.PP
970Deconfigure STP from above:
971.IP
972.B "ovs\-vsctl clear Bridge br0 stp_enable"
973.PP
bb8a54f3
IY
974.SS "OpenFlow Version"
975.PP
976Configure bridge \fBbr0\fR to support OpenFlow versions 1.0, 1.2, and
9771.3:
978.IP
979.B "ovs\-vsctl set bridge br0 protocols=openflow10,openflow12,openflow13"
980.
3b135da3
BP
981.SH "EXIT STATUS"
982.IP "0"
983Successful program execution.
984.IP "1"
985Usage, syntax, or configuration file error.
986.IP "2"
987The \fIbridge\fR argument to \fBbr\-exists\fR specified the name of a
988bridge that does not exist.
989.SH "SEE ALSO"
990.
dfbe07ba 991.BR ovsdb\-server (1),
5aa75474
BP
992.BR ovs\-vswitchd (8),
993.BR ovs\-vswitchd.conf.db (5).