Blame man/nm-openvswitch.7

Packit 5756e2
'\" t
Packit 5756e2
.\"     Title: nm-openvswitch
Packit 5756e2
.\"    Author: 
Packit 5756e2
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
Packit Bot c44df3
.\"      Date: 04/22/2021
Packit 5756e2
.\"    Manual: Open vSwitch support overview
Packit Bot c44df3
.\"    Source: NetworkManager 1.31.3
Packit 5756e2
.\"  Language: English
Packit 5756e2
.\"
Packit Bot c44df3
.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.31\&.3" "Open vSwitch support overview"
Packit 5756e2
.\" -----------------------------------------------------------------
Packit 5756e2
.\" * Define some portability stuff
Packit 5756e2
.\" -----------------------------------------------------------------
Packit 5756e2
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Packit 5756e2
.\" http://bugs.debian.org/507673
Packit 5756e2
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
Packit 5756e2
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Packit 5756e2
.ie \n(.g .ds Aq \(aq
Packit 5756e2
.el       .ds Aq '
Packit 5756e2
.\" -----------------------------------------------------------------
Packit 5756e2
.\" * set default formatting
Packit 5756e2
.\" -----------------------------------------------------------------
Packit 5756e2
.\" disable hyphenation
Packit 5756e2
.nh
Packit 5756e2
.\" disable justification (adjust text to left margin only)
Packit 5756e2
.ad l
Packit 5756e2
.\" -----------------------------------------------------------------
Packit 5756e2
.\" * MAIN CONTENT STARTS HERE *
Packit 5756e2
.\" -----------------------------------------------------------------
Packit 5756e2
.SH "NAME"
Packit 5756e2
nm-openvswitch \- overview of NetworkManager Open vSwitch support
Packit 5756e2
.SH "OVERVIEW"
Packit 5756e2
.PP
Packit 5756e2
NetworkManager includes basic Open vSwitch support, good enough to be capable of setting up simple Open vSwitch configurations\&. It is not extensive and does not expose all functionality of Open vSwitch provides\&. For large or complicated deployments users are advised to use native tools shipped with Open vSwitch\&. This document seeks to provide overview of functionality currently provided by NetworkManager, its capabilities and limitations\&.
Packit 5756e2
.PP
Packit 5756e2
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
Packit 5756e2
\fBovs\-vsctl\fR
Packit 5756e2
provides\&.
Packit 5756e2
.PP
Packit 5756e2
In practical terms it means the following:
Packit 5756e2
.sp
Packit 5756e2
.RS 4
Packit 5756e2
.ie n \{\
Packit 5756e2
\h'-04'\(bu\h'+03'\c
Packit 5756e2
.\}
Packit 5756e2
.el \{\
Packit 5756e2
.sp -1
Packit 5756e2
.IP \(bu 2.3
Packit 5756e2
.\}
Packit 5756e2
NetworkManager only ever talks to a single OVSDB instance via an UNIX domain socket\&.
Packit 5756e2
.RE
Packit 5756e2
.sp
Packit 5756e2
.RS 4
Packit 5756e2
.ie n \{\
Packit 5756e2
\h'-04'\(bu\h'+03'\c
Packit 5756e2
.\}
Packit 5756e2
.el \{\
Packit 5756e2
.sp -1
Packit 5756e2
.IP \(bu 2.3
Packit 5756e2
.\}
Packit 5756e2
The configuration is made up of Bridges, Ports and Interfaces\&. Interfaces are always enslaved to Ports, and Ports are always enslaved to Bridges\&.
Packit 5756e2
.RE
Packit 5756e2
.sp
Packit 5756e2
.RS 4
Packit 5756e2
.ie n \{\
Packit 5756e2
\h'-04'\(bu\h'+03'\c
Packit 5756e2
.\}
Packit 5756e2
.el \{\
Packit 5756e2
.sp -1
Packit 5756e2
.IP \(bu 2.3
Packit 5756e2
.\}
Packit 5756e2
NetworkManager only creates Bridges, Ports and Interfaces you ask it to\&. Unlike
Packit 5756e2
\fBovs\-vsctl\fR, it doesn\*(Aqt create the local interface nor its port automatically\&.
Packit 5756e2
.RE
Packit 5756e2
.sp
Packit 5756e2
.RS 4
Packit 5756e2
.ie n \{\
Packit 5756e2
\h'-04'\(bu\h'+03'\c
Packit 5756e2
.\}
Packit 5756e2
.el \{\
Packit 5756e2
.sp -1
Packit 5756e2
.IP \(bu 2.3
Packit 5756e2
.\}
Packit 5756e2
You can\*(Aqt enslave Interface directly to a Bridge\&. You always need a Port, even if it has just one interface\&.
Packit 5756e2
.RE
Packit 5756e2
.sp
Packit 5756e2
.RS 4
Packit 5756e2
.ie n \{\
Packit 5756e2
\h'-04'\(bu\h'+03'\c
Packit 5756e2
.\}
Packit 5756e2
.el \{\
Packit 5756e2
.sp -1
Packit 5756e2
.IP \(bu 2.3
Packit 5756e2
.\}
Packit 5756e2
There are no VLANs\&. The VLAN tagging is enabled by setting a
Packit 5756e2
ovs\-port\&.tag
Packit 5756e2
property on a Port\&.
Packit 5756e2
.RE
Packit 5756e2
.sp
Packit 5756e2
.RS 4
Packit 5756e2
.ie n \{\
Packit 5756e2
\h'-04'\(bu\h'+03'\c
Packit 5756e2
.\}
Packit 5756e2
.el \{\
Packit 5756e2
.sp -1
Packit 5756e2
.IP \(bu 2.3
Packit 5756e2
.\}
Packit 5756e2
There are no bonds either\&. The bonding is enabled by enslaving multiple Interfaces to a Port and configured by setting properties on a port\&.
Packit 5756e2
.RE
Packit 5756e2
.sp
Packit 5756e2
.SS "Bridges"
Packit 5756e2
.PP
Packit 5756e2
Bridges are represented by connections of ovs\-bridge
Packit 5756e2
type\&. Due to the limitations of OVSDB, "empty" Bridges (with no Ports) can\*(Aqt exist\&. NetworkManager inserts the records for Bridges into OVSDB when a Port is enslaved\&.
Packit 5756e2
.SS "Ports"
Packit 5756e2
.PP
Packit 5756e2
Ports are represented by connections of ovs\-port
Packit 5756e2
type\&. Due to the limitations of OVSDB, "empty" Ports (with no Interfaces) can\*(Aqt 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\&.
Packit 5756e2
.SS "Interfaces"
Packit 5756e2
.PP
Packit 5756e2
Interfaces are represented by a connections enslaved to a Port\&. The system interfaces (that have a corresponding Linux link) have a respective
Packit 5756e2
connection\&.type
Packit 5756e2
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\&.
Packit 5756e2
.SH "EXAMPLES"
Packit 5756e2
.PP
Packit 5756e2
\fBExample\ \&1.\ \&Creating a Bridge with a single internal Interface\fR
Packit 5756e2
.sp
Packit 5756e2
.if n \{\
Packit 5756e2
.RS 4
Packit 5756e2
.\}
Packit 5756e2
.nf
Packit 5756e2
$ \fBnmcli conn add type ovs\-bridge conn\&.interface bridge0\fR
Packit 5756e2
Connection \*(Aqovs\-bridge\-bridge0\*(Aq (d10fc64d\-1d48\-4394\-a1b8\-e1aea72f27d5) successfully added\&.
Packit 5756e2
$ \fBnmcli conn add type ovs\-port conn\&.interface port0 master bridge0\fR
Packit 5756e2
Connection \*(Aqovs\-port\-port0\*(Aq (5ae22bae\-bba4\-4815\-9ade\-7e635633e1f0) successfully added\&.
Packit 5756e2
$ \fBnmcli conn add type ovs\-interface slave\-type ovs\-port conn\&.interface iface0 \e
Packit 5756e2
  master port0 ipv4\&.method manual ipv4\&.address 192\&.0\&.2\&.1/24\fR
Packit 5756e2
Connection \*(Aqovs\-interface\-iface0\*(Aq (3640d2a1\-a2fd\-4718\-92f1\-cffadb5b6cdc) successfully added\&.
Packit 5756e2
.fi
Packit 5756e2
.if n \{\
Packit 5756e2
.RE
Packit 5756e2
.\}
Packit 5756e2
.PP
Packit 5756e2
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
Packit 5756e2
\fBovs\-vsctl show\fR\&.
Packit 5756e2
.PP
Packit 5756e2
\fBExample\ \&2.\ \&Adding a Linux interface to a Bridge\fR
Packit 5756e2
.sp
Packit 5756e2
.if n \{\
Packit 5756e2
.RS 4
Packit 5756e2
.\}
Packit 5756e2
.nf
Packit 5756e2
$ \fBnmcli conn add type ovs\-port conn\&.interface port1 master bridge0\fR
Packit 5756e2
Connection \*(Aqovs\-port\-port1\*(Aq (67d041eb\-8e7b\-4458\-afee\-a1d07c9c4552) successfully added\&.
Packit 5756e2
$ \fBnmcli conn add type ethernet conn\&.interface eth0 master port1\fR
Packit 5756e2
Connection \*(Aqovs\-slave\-eth0\*(Aq (d459c45c\-cf78\-4c1c\-b4b7\-505e71379624) successfully added\&.
Packit 5756e2
.fi
Packit 5756e2
.if n \{\
Packit 5756e2
.RE
Packit 5756e2
.\}
Packit 5756e2
.PP
Packit 5756e2
Again, you need a port\&.
Packit 5756e2
.PP
Packit 5756e2
\fBExample\ \&3.\ \&Creating a VLAN\fR
Packit 5756e2
.sp
Packit 5756e2
.if n \{\
Packit 5756e2
.RS 4
Packit 5756e2
.\}
Packit 5756e2
.nf
Packit 5756e2
$ \fBnmcli conn add type ovs\-port conn\&.interface port2 master bridge0 ovs\-port\&.tag 120\fR
Packit 5756e2
Connection \*(Aqovs\-port\-port2\*(Aq (3994c093\-4ef7\-4549\-a4fd\-627b831c3cb8) successfully added\&.
Packit 5756e2
$ \fBnmcli conn add type ethernet conn\&.interface eth1 master port2\fR
Packit 5756e2
Connection \*(Aqovs\-slave\-eth1\*(Aq (099be06e\-71ad\-484d\-8d5a\-fcadc5f207f5) successfully added\&.
Packit 5756e2
.fi
Packit 5756e2
.if n \{\
Packit 5756e2
.RE
Packit 5756e2
.\}
Packit 5756e2
.PP
Packit 5756e2
It\*(Aqs just a port with a tag\&.
Packit 5756e2
.PP
Packit 5756e2
\fBExample\ \&4.\ \&Creating a Bond\fR
Packit 5756e2
.sp
Packit 5756e2
.if n \{\
Packit 5756e2
.RS 4
Packit 5756e2
.\}
Packit 5756e2
.nf
Packit 5756e2
$ \fBnmcli conn add type ovs\-port conn\&.interface bond0 master bridge0\fR
Packit 5756e2
Connection \*(Aqovs\-port\-bond0\*(Aq (d154ebf9\-e999\-4e1b\-a084\-a3de53d25d8a) successfully added\&.
Packit 5756e2
$ \fBnmcli conn add type ethernet conn\&.interface eth2 master bond0\fR
Packit 5756e2
Connection \*(Aqovs\-slave\-eth2\*(Aq (475ac1bf\-30b2\-4534\-a877\-27f33f58b082) successfully added\&.
Packit 5756e2
$ \fBnmcli conn add type ethernet conn\&.interface eth3 master bond0\fR
Packit 5756e2
Connection \*(Aqovs\-slave\-eth3\*(Aq (8dedeecb\-ed12\-482b\-b77a\-24a4fb835136) successfully added\&.
Packit 5756e2
.fi
Packit 5756e2
.if n \{\
Packit 5756e2
.RE
Packit 5756e2
.\}
Packit 5756e2
.PP
Packit 5756e2
It\*(Aqs 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\&.
Packit 5756e2
.SH "BUGS"
Packit 5756e2
.sp
Packit 5756e2
.RS 4
Packit 5756e2
.ie n \{\
Packit 5756e2
\h'-04'\(bu\h'+03'\c
Packit 5756e2
.\}
Packit 5756e2
.el \{\
Packit 5756e2
.sp -1
Packit 5756e2
.IP \(bu 2.3
Packit 5756e2
.\}
Packit 5756e2
Not all Open vSwitch capabilities are supported\&.
Packit 5756e2
.RE
Packit 5756e2
.sp
Packit 5756e2
.RS 4
Packit 5756e2
.ie n \{\
Packit 5756e2
\h'-04'\(bu\h'+03'\c
Packit 5756e2
.\}
Packit 5756e2
.el \{\
Packit 5756e2
.sp -1
Packit 5756e2
.IP \(bu 2.3
Packit 5756e2
.\}
Packit 5756e2
Open vSwitch devices don\*(Aqt expose many useful properties on D\-Bus\&.
Packit 5756e2
.RE
Packit 5756e2
.PP
Packit 5756e2
Probably many more\&.
Packit 5756e2
.SH "SEE ALSO"
Packit 5756e2
.PP
Packit 5756e2
\m[blue]\fBRFC 7047: The Open vSwitch Database Management Protocol\fR\m[]\&\s-2\u[1]\d\s+2,
Packit 5756e2
\fBovs-vsctl\fR(8),
Packit 5756e2
\fBovs-vswitchd.conf.db\fR(5),
Packit 5756e2
\fBnm-settings\fR(5),
Packit 5756e2
\fBnmcli\fR(1)
Packit 5756e2
.SH "NOTES"
Packit 5756e2
.IP " 1." 4
Packit 5756e2
RFC 7047: The Open vSwitch Database Management Protocol
Packit 5756e2
.RS 4
Packit 5756e2
\%https://www.rfc-editor.org/rfc/rfc7047.txt
Packit 5756e2
.RE