Skip to content

Commit

Permalink
ovn-nbctl: Add lrouter and lrport related commands.
Browse files Browse the repository at this point in the history
ovn-nbctl provides a shortcut to perform commands related lswitch, lport
and such but it doesn't have similar commands related to logical routers
and logical router ports. Also, 'ovn-nbctl show' is supposed to show an
overview of database contents, which means it should show the routers
as well. "ovn-nbctl show LSWITCH" shows the switch details, similarly
"ovn-nbctl show LROUTER" should show the router details too. This patch
takes care of all of these.

Modifications;
1) ovn-nbctl show -- will now show lrouters as well
2) ovn-nbctl show <lrouter> -- will show the router now

New commands added:
3) ovn-nbctl lrouter-add [LROUTER]
4) ovn-nbctl lrouter-del LROUTER
5) ovn-nbctl lrouter-list
6) lrport-add LROUTER LRPORT
7) lrport-del LRPORT
8) lrport-list LROUTER
9) lrport-set-mac-address LRPORT [ADDRESS]
10) lrport-get-mac-address LRPORT
11) lrport-set-enabled LRPORT STATE
12) lrport-get-enabled LRPORT

Unit test cases have been added to test all of these modifications and
additions.

Signed-off-by: Nirapada Ghosh <nghosh@us.ibm.com>
[blp@ovn.org added features to match the lswitch and lport commands]
Co-authored-by: Ben Pfaff <blp@ovn.org>
Signed-off-by: Ben Pfaff <blp@ovn.org>
  • Loading branch information
nirapada and blp committed Jun 3, 2016
1 parent 7058ec5 commit 7127583
Show file tree
Hide file tree
Showing 3 changed files with 685 additions and 12 deletions.
100 changes: 98 additions & 2 deletions ovn/utilities/ovn-nbctl.8.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,50 @@
<h1>General Commands</h1>

<dl>
<dt><code>show [<var>lswitch</var>]</code></dt>
<dt><code>show [<var>lswitch</var> | <var>lrouter</var>]</code></dt>
<dd>
Prints a brief overview of the database contents. If
<var>lswitch</var> is provided, only records related to that
logical switch are shown.
logical switch are shown. If
<var>lrouter</var> is provided, only records related to that
logical router are shown.
</dd>
</dl>

<h1>Logical Router Commands</h1>

<dl>
<dt>[<code>--may-exist</code> | <code>--add-duplicate</code>] <code>lrouter-add</code> <var>lrouter</var></dt>
<dd>
<p>
Creates a new logical router named <var>lrouter</var>, which
initially has no router ports.
</p>

<p>
The OVN northbound database schema does not require logical router
names to be unique, but the whole point to the names is to provide an
easy way for humans to refer to the routers, making duplicate names
unhelpful. Thus, without any options, this command regards it as an
error if <var>lrouter</var> is a duplicate name. With
<code>--may-exist</code>, adding a duplicate name succeeds but does
not create a new logical router. With <code>--add-duplicate</code>,
the command really creates a new logical router with a duplicate
name. It is an error to specify both options.
</p>
</dd>

<dt>[<code>--if-exists</code>] <code>lrouter-del</code> <var>lrouter</var></dt>
<dd>
Deletes <var>lrouter</var>. It is an error if <var>lrouter</var> does
not exist, unless <code>--if-exists</code> is specified.
</dd>

<dt><code>lrouter-list</code></dt>
<dd>
Lists all existing logical routers on standard output, one per line.
</dd>
</dl>
<h1>Logical Switch Commands</h1>

<dl>
Expand Down Expand Up @@ -91,7 +127,67 @@
Lists the ACLs on <var>lswitch</var>.
</dd>
</dl>
<h1>Logical Router Port Commands</h1>
<dl>
<dt>[<code>--may-exist</code>] <code>lrport-add</code> <var>lrouter</var> <var>lrport</var></dt>
<dd>
<p>
Creates on <var>lrouter</var> a new logical router port named
<var>lrport</var>.
</p>

<p>
It is an error if a logical router port named <var>lrport</var>
already exists, unless <code>--may-exist</code> is specified.
Regardless of <code>--may-exist</code>, it is an error if the
existing router port is in some logical router other than
<var>lrouter</var>.
</p>
</dd>

<dt>[<code>--if-exists</code>] <code>lrport-del</code> <var>lrport</var></dt>
<dd>
Deletes <var>lrport</var>. It is an error if <var>lrport</var> does
not exist, unless <code>--if-exists</code> is specified.
</dd>

<dt><code>lrport-list</code> <var>lrouter</var></dt>
<dd>
Lists all the logical router ports within <var>lrouter</var> on
standard output, one per line.
</dd>

<dt><code>lrport-set-mac-address</code> <var>lrport</var>
<var>address</var>...</dt>
<dd>
Sets the address associated with <var>lrport</var> to
<var>address</var>. <var>address</var> should be either an
Ethernet address or an Ethernet address followed by an IP address
(separated by a space and quoted to form a single command-line
argument). The special form <code>unknown</code> is also valid.
</dd>

<dt><code>lrport-get-mac-address</code> <var>lrport</var></dt>
<dd>
Lists the mac address associated with <var>lrport</var> on standard
output.
</dd>

<dt><code>lrport-set-enabled</code> <var>lrport</var> <var>state</var></dt>
<dd>
Set the administrative state of <var>lrport</var>,
either <code>enabled</code> or <code>disabled</code>.
When a port is disabled, no traffic is allowed into
or out of the port.
</dd>

<dt><code>lrport-get-enabled</code> <var>lrport</var></dt>
<dd>
Prints the administrative state of <var>lrport</var>,
either <code>enabled</code> or <code>disabled</code>.
</dd>

</dl>
<h1>Logical Port Commands</h1>
<dl>
<dt>[<code>--may-exist</code>] <code>lport-add</code> <var>lswitch</var> <var>lport</var></dt>
Expand Down
Loading

0 comments on commit 7127583

Please sign in to comment.