/usr/share/gtk-doc/html/NetworkManager/nm-openvswitch.html is in network-manager-dev 1.10.6-2ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>nm-openvswitch: NetworkManager Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="NetworkManager Reference Manual">
<link rel="up" href="manpages.html" title="Part I. Manual Pages">
<link rel="prev" href="nm-online.html" title="nm-online">
<link rel="next" href="ref-settings.html" title="Part II. Network Configuration Setting Specification">
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="manpages.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="nm-online.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="ref-settings.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="nm-openvswitch"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle">nm-openvswitch</span></h2>
<p>nm-openvswitch — overview of NetworkManager OpenVSwitch support</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="id-1.2.11.4"></a><h2>Overview</h2>
<p>NetworkManager includes basic OpenVSwitch support, good enough
to be capable of setting up simple OpenVSwitch configurations. It is not
extensive and does not expose all functionality of OpenVSwitch provides.
For large or complicated deployments users are advised to use native tools
shipped with OpenVSwitch. This document seeks to provide overview of
functionality currently provided by NetworkManager, its capabilities and
limitations.</p>
<p>First and foremost: NetworkManager applies the configuration by
modifying the OVSDB directly. Its configuration model follows the OVSDB
database model closely and it does not provide the level of abstraction
<span class="command"><strong>ovs-vsctl</strong></span> provides.</p>
<p>In practical terms it means the following:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>NetworkManager only ever talks to a single OVSDB instance via an
UNIX domain socket.</p></li>
<li class="listitem"><p>The configuration is made up of Bridges, Ports and
Interfaces. Interfaces are always enslaved to Ports, and Ports are always
enslaved to Bridges.</p></li>
<li class="listitem"><p>NetworkManager only creates Bridges, Ports and Interfaces
you ask it to. Unlike <span class="command"><strong>ovs-vsctl</strong></span>, it doesn't create the
local interface nor its port automatically.</p></li>
<li class="listitem"><p>You can't enslave Interface directly to a Bridge. You
always need a Port, even if it has just one interface.</p></li>
<li class="listitem"><p>There are no VLANs. The VLAN tagging is enabled by setting a
<a class="link" href="nm-settings.html#nm-settings.property.ovs-port.tag">ovs-port.tag</a>
property on a Port.</p></li>
<li class="listitem"><p>There are no bonds either. The bonding is enabled by
enslaving multiple Interfaces to a Port and configured by setting
properties on a port.</p></li>
</ul></div>
<p>
</p>
<div class="refsect2">
<a name="id-1.2.11.4.5"></a><h3>Bridges</h3>
<p>Bridges are represented by connections of ovs-bridge
<a class="link" href="nm-settings.html#nm-settings.property.connection.type">type</a>.
Due to the limitations of OVSDB, "empty" Bridges (with no Ports) can't exist.
NetworkManager inserts the records for Bridges into OVSDB when a Port is
enslaved.
</p>
</div>
<hr>
<div class="refsect2">
<a name="id-1.2.11.4.6"></a><h3>Ports</h3>
<p>Ports are represented by connections of ovs-port
<a class="link" href="nm-settings.html#nm-settings.property.connection.type">type</a>.
Due to the limitations of OVSDB, "empty" Ports (with no Interfaces) can't
exist. Ports can also be configured to do VLAN tagging or Bonding.
NetworkManager inserts the records for Ports into OVSDB when an Interface is
enslaved. Ports must be enslaved to a Bridge.</p>
</div>
<hr>
<div class="refsect2">
<a name="id-1.2.11.4.7"></a><h3>Interfaces</h3>
<p>Interfaces are represented by a connections enslaved to a Port. The
system interfaces (that have a corresponding Linux link) have a respective
<a class="link" href="nm-settings.html#nm-settings.property.connection.type">connection.type</a>
of the link (e.g. "wired", "bond", "dummy", etc.). Other interfaces ("internal"
or "patch" interfaces) are of ovs-interface type. The OVSDB entries are
inserted upon enslavement to a Port.</p>
</div>
</div>
<div class="refsect1">
<a name="id-1.2.11.5"></a><h2>Examples</h2>
<div class="example">
<a name="id-1.2.11.5.2"></a><p class="title"><b>Example 14. Creating a Bridge with a single internal Interface</b></p>
<div class="example-contents">
<pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>nmcli conn add type ovs-bridge conn.interface bridge0</code></strong>
Connection 'ovs-bridge-bridge0' (d10fc64d-1d48-4394-a1b8-e1aea72f27d5) successfully added.
<code class="prompt">$ </code><strong class="userinput"><code>nmcli conn add type ovs-port conn.interface port0 conn.master bridge0</code></strong>
Connection 'ovs-port-port0' (5ae22bae-bba4-4815-9ade-7e635633e1f0) successfully added.
<code class="prompt">$ </code><strong class="userinput"><code>nmcli conn add type ovs-interface conn.interface iface0 conn.master port0 \
ipv4.method manual ipv4.address 192.0.2.1/24</code></strong>
Connection 'ovs-interface-iface0' (3640d2a1-a2fd-4718-92f1-cffadb5b6cdc) successfully added.
</pre>
<p>As said above, you need to create a Port even for a single interface.
Also, before you add the Interface, the Bridge and Port devices appear active,
but are not configured in OVSDB yet. You can inspect the results with
<span class="command"><strong>ovs-vsctl show</strong></span>.</p>
</div>
</div>
<br class="example-break"><div class="example">
<a name="id-1.2.11.5.3"></a><p class="title"><b>Example 15. Adding a Linux interface to a Bridge</b></p>
<div class="example-contents">
<pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>nmcli conn add type ovs-port conn.interface port1 conn.master bridge0</code></strong>
Connection 'ovs-port-port1' (67d041eb-8e7b-4458-afee-a1d07c9c4552) successfully added.
<code class="prompt">$ </code><strong class="userinput"><code>nmcli conn add type ethernet conn.interface eth0 conn.master port1</code></strong>
Connection 'ovs-slave-eth0' (d459c45c-cf78-4c1c-b4b7-505e71379624) successfully added.
</pre>
<p>Again, you need a port.</p>
</div>
</div>
<br class="example-break"><div class="example">
<a name="id-1.2.11.5.4"></a><p class="title"><b>Example 16. Creating a VLAN</b></p>
<div class="example-contents">
<pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>nmcli conn add type ovs-port conn.interface port2 conn.master bridge0 ovs-port.tag 120</code></strong>
Connection 'ovs-port-port2' (3994c093-4ef7-4549-a4fd-627b831c3cb8) successfully added.
<code class="prompt">$ </code><strong class="userinput"><code>nmcli conn add type ethernet conn.interface eth1 conn.master port2</code></strong>
Connection 'ovs-slave-eth1' (099be06e-71ad-484d-8d5a-fcadc5f207f5) successfully added.
</pre>
<p>It's just a port with a tag.</p>
</div>
</div>
<br class="example-break"><div class="example">
<a name="id-1.2.11.5.5"></a><p class="title"><b>Example 17. Creating a Bond</b></p>
<div class="example-contents">
<pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>nmcli conn add type ovs-port conn.interface bond0 conn.master bridge0</code></strong>
Connection 'ovs-port-bond0' (d154ebf9-e999-4e1b-a084-a3de53d25d8a) successfully added.
<code class="prompt">$ </code><strong class="userinput"><code>nmcli conn add type ethernet conn.interface eth2 conn.master bond0</code></strong>
Connection 'ovs-slave-eth2' (475ac1bf-30b2-4534-a877-27f33f58b082) successfully added.
<code class="prompt">$ </code><strong class="userinput"><code>nmcli conn add type ethernet conn.interface eth3 conn.master bond0</code></strong>
Connection 'ovs-slave-eth3' (8dedeecb-ed12-482b-b77a-24a4fb835136) successfully added.
</pre>
<p>It's just a Port with multiple interfaces. See nm-settings manual for
Bonding options you can use with "nmcli c add" or "nmcli c modify". You could
even set a VLAN tag on the same Port to do VLAN tagging and bonding at the same
time.</p>
</div>
</div>
<br class="example-break">
</div>
<div class="refsect1">
<a name="id-1.2.11.6"></a><h2>Bugs</h2>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>Not all OpenVSwitch capabilities are supported.</p></li>
<li class="listitem"><p>OpenVSwitch devices don't expose many useful properties on D-Bus.</p></li>
</ul></div>
<p>Probably many more.</p>
</div>
<div class="refsect1">
<a name="id-1.2.11.7"></a><h2>See Also</h2>
<p>
<a class="ulink" href="https://www.rfc-editor.org/rfc/rfc7047.txt" target="_top">RFC 7047: The Open vSwitch Database Management Protocol</a>,
<span class="citerefentry"><span class="refentrytitle">ovs-vsctl</span>(8)</span>,
<span class="citerefentry"><span class="refentrytitle">ovs-vswitchd.conf.db</span>(5)</span>,
<a class="link" href="nm-settings.html" title="nm-settings"><span class="citerefentry"><span class="refentrytitle">nm-settings</span>(5)</span></a>,
<a class="link" href="nmcli.html" title="nmcli"><span class="citerefentry"><span class="refentrytitle">nmcli</span>(1)</span></a>
</p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.27</div>
</body>
</html>
|