3909b9d711ea5f6b2e873777619b73c095cfccae
[cascardo/ovs.git] / ovn / controller / ovn-controller.8.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <manpage program="ovn-controller" section="8" title="ovn-controller">
3     <h1>Name</h1>
4     <p>ovn-controller -- Open Virtual Network local controller</p>
5
6     <h1>Synopsis</h1>
7     <p><code>ovn-controller</code> [<var>options</var>] [<var>ovs-database</var>]</p>
8
9     <h1>Description</h1>
10     <p>
11       <code>ovn-controller</code> is the local controller daemon for
12       OVN, the Open Virtual Network.  It connects up to the OVN
13       Southbound database (see <code>ovn-sb</code>(5)) over the OVSDB
14       protocol, and down to the Open vSwitch database (see
15       <code>ovs-vswitchd.conf.db</code>(5)) over the OVSDB protocol and
16       to <code>ovs-vswitchd</code>(8) via OpenFlow.  Each hypervisor and
17       software gateway in an OVN deployment runs its own independent
18       copy of <code>ovn-controller</code>; thus,
19       <code>ovn-controller</code>'s downward connections are
20       machine-local and do not run over a physical network.
21     </p>
22
23     <h1>Configuration</h1>
24     <p>
25       <code>ovn-controller</code> retrieves most of its configuration
26       information from the local Open vSwitch's ovsdb-server instance.
27       The default location is <code>db.sock</code> in the local Open
28       vSwitch's "run" directory.  It may be overridden by specifying the
29       <var>ovs-database</var> argument in one of the following forms:
30     </p>
31     <ul>
32       <li>
33         <p>
34           <code>ssl:<var>ip</var>:<var>port</var></code>
35         </p>
36         <p>
37           The specified SSL <var>port</var> on the host at the given
38           <var>ip</var>, which must be expressed as an IP address (not a DNS
39           name) in IPv4 or IPv6 address format.  If <var>ip</var> is an IPv6
40           address, then wrap <var>ip</var> with square brackets, e.g.:
41           <code>ssl:[::1]:6640</code>.  The <code>--private-key</code>,
42           <code>--certificate</code> and either of <code>--ca-cert</code>
43           or <code>--bootstrap-ca-cert</code> options are mandatory when this
44           form is used.
45         </p>
46       </li>
47       <li>
48         <p>
49           <code>tcp:<var>ip</var>:<var>port</var></code>
50         </p>
51         <p>
52           Connect to the given TCP <var>port</var> on <var>ip</var>, where
53           <var>ip</var> can be IPv4 or IPv6 address. If <var>ip</var> is an
54           IPv6 address, then wrap <var>ip</var> with square brackets, e.g.:
55           <code>tcp:[::1]:6640</code>.
56         </p>
57       </li>
58       <li>
59         <p>
60           <code>unix:<var>file</var></code>
61         </p>
62         <p>
63           On POSIX, connect to the Unix domain server socket named
64           <var>file</var>.
65         </p>
66         <p>
67           On Windows, connect to a localhost TCP port whose value is written
68           in <var>file</var>.
69         </p>
70       </li>
71     </ul>
72     <p>
73       <code>ovn-controller</code> assumes it gets configuration
74       information from the following keys in the <code>Open_vSwitch</code>
75       table of the local OVS instance:
76     </p>
77     <dl>
78       <dt><code>external_ids:system-id</code></dt>
79       <dd>The chassis name to use in the Chassis table.</dd>
80
81       <dt><code>external_ids:ovn-bridge</code></dt>
82       <dd>
83         The integration bridge to which logical ports are attached.  The
84         default is <code>br-int</code>.  If this bridge does not exist when
85         ovn-controller starts, it will be created automatically with the
86         default configuration suggested in <code>ovn-architecture</code>(7).
87       </dd>
88
89       <dt><code>external_ids:ovn-remote</code></dt>
90       <dd>
91         <p>
92           The OVN database that this system should connect to for its
93           configuration.
94         </p>
95
96         <p>
97           Currently, <code>ovn-controller</code> does not support changing this
98           setting mid-run.  If the value needs to change, the daemon must be
99           restarted.  (This behavior should be improved.)
100         </p>
101       </dd>
102
103       <dt><code>external_ids:ovn-encap-type</code></dt>
104       <dd>
105         The encapsulation type that a chassis should use to connect to this
106         node.  Supported tunnel types for connecting hypervisors are
107         <code>geneve</code> and <code>stt</code>.  Gateways may use
108         <code>geneve</code>, <code>vxlan</code>, or <code>stt</code>.
109       </dd>
110
111       <dt><code>external_ids:ovn-encap-ip</code></dt>
112       <dd>
113         The IP address that a chassis should use to connect to this node
114         using encapsulation type specified by
115         <code>external_ids:ovn-encap-type</code>.
116       </dd>
117
118       <dt><code>external_ids:ovn-bridge-mappings</code></dt>
119       <dd>
120         A list of key-value pairs that map a physical network name to a local
121         ovs bridge that provides connectivity to that network.  An example
122         value mapping two physical network names to two ovs bridges would be:
123         <code>physnet1:br-eth0,physnet2:br-eth1</code>.
124       </dd>
125     </dl>
126
127     <h1>Open vSwitch Database Usage</h1>
128
129     <p>
130       <code>ovn-controller</code> uses a number of <code>external-ids</code>
131       keys in the Open vSwitch database to keep track of ports and interfaces.
132       For proper operation, users should not change or clear these keys:
133     </p>
134
135     <dl>
136       <dt>
137         <code>external_ids:ovn-chassis-id</code> in the <code>Port</code> table
138       </dt>
139       <dd>
140         The presence of this key identifies a tunnel port within the
141         integration bridge as one created by <code>ovn-controller</code> to
142         reach a remote chassis.  Its value is the chassis ID of the remote
143         chassis.
144       </dd>
145
146       <dt>
147         <code>external-ids:ovn-patch-port</code> in the <code>Port</code> table
148       </dt>
149       <dd>
150         <p>
151           The presence of this key identifies a patch port as one created by
152           <code>ovn-controller</code> to connect the integration bridge and
153           another bridge to implement a <code>localnet</code> logical port.
154           Its value is the name of the physical network that the port
155           implements.  See <code>external_ids:ovn-bridge-mappings</code>,
156           above, for more information.
157         </p>
158
159         <p>
160           Each <code>localnet</code> logical port is implemented as a pair of
161           patch ports, one in the integration bridge, one in a different
162           bridge, with the same <code>external-ids:ovn-patch-port</code> value.
163         </p>
164       </dd>
165     </dl>
166
167     <h1>Runtime Management Commands</h1>
168     <p>
169       <code>ovs-appctl</code> can send commands to a running
170       <code>ovn-controller</code> process.  The currently supported
171       commands are described below.
172       <dl>
173       <dt><code>exit</code></dt>
174       <dd>
175         Causes <code>ovn-controller</code> to gracefully terminate.
176       </dd>
177
178       <dt><code>ct-zone-list</code></dt>
179       <dd>
180         Lists each local logical port and its connection tracking zone.
181       </dd>
182       </dl>
183     </p>
184
185 </manpage>