@@ -4,6 +4,8 @@ Post v24.09.0
hash (with specified hash fields) for ECMP routes
while choosing nexthop.
- ovn-ic: Add support for route tag to prevent route learning.
+ - ovn-nb: Changed schema of ovn-nb to make networks optional within Logical
+ Router Ports.
OVN v24.09.0 - 13 Sep 2024
--------------------------
@@ -1,7 +1,7 @@
{
"name": "OVN_Northbound",
- "version": "7.7.0",
- "cksum": "116357561 38626",
+ "version": "7.7.1",
+ "cksum": "3555498067 38626",
"tables": {
"NB_Global": {
"columns": {
@@ -468,7 +468,7 @@
"min": 0,
"max": "unlimited"}},
"networks": {"type": {"key": "string",
- "min": 1,
+ "min": 0,
"max": "unlimited"}},
"mac": {"type": "string"},
"peer": {"type": {"key": "string", "min": 0, "max": 1}},
@@ -3225,6 +3225,7 @@ or
<code>192.168.0.1/24</code> indicates that the router's IP
address is 192.168.0.1 and that packets destined to
192.168.0.<var>x</var> should be routed to this port.
+ These are optional.
</p>
<p>
@@ -1697,6 +1697,19 @@ AT_CHECK([ovn-nbctl lrp-list lr0 | uuidfilt], [0], [dnl
<1> (lrp1)
])
+AT_CHECK([ovn-nbctl lrp-add lr0 lrp2 00:00:00:01:02:03])
+AT_CHECK([ovn-nbctl lrp-list lr0 | uuidfilt], [0], [dnl
+<0> (lrp0)
+<1> (lrp1)
+<2> (lrp2)
+])
+
+AT_CHECK([ovn-nbctl lrp-del lrp2])
+AT_CHECK([ovn-nbctl lrp-list lr0 | uuidfilt], [0], [dnl
+<0> (lrp0)
+<1> (lrp1)
+])
+
AT_CHECK([ovn-nbctl lr-add lr1])
AT_CHECK([ovn-nbctl lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24], [1], [],
[ovn-nbctl: lrp1: a port with this name already exists
@@ -929,12 +929,12 @@
<h2>Logical Router Port Commands</h2>
<dl>
- <dt>[<code>--may-exist</code>] <code>lrp-add</code> <var>router</var> <var>port</var> <var>mac</var> <var>network</var>... [<code>peer=</code><var>peer</var>]</dt>
+ <dt>[<code>--may-exist</code>] <code>lrp-add</code> <var>router</var> <var>port</var> <var>mac</var> [<var>network</var>]... [<code>peer=</code><var>peer</var>]</dt>
<dd>
<p>
Creates on <var>router</var> a new logical router port named
- <var>port</var> with Ethernet address <var>mac</var> and one
- or more IP address/netmask for each <var>network</var>.
+ <var>port</var> with Ethernet address <var>mac</var> and IP
+ address/netmask for each <var>network</var>.
</p>
<p>
@@ -360,7 +360,7 @@ Logical router commands:\n\
lr-list print the names of all logical routers\n\
\n\
Logical router port commands:\n\
- lrp-add ROUTER PORT MAC NETWORK... [peer=PEER]\n\
+ lrp-add ROUTER PORT MAC [NETWORK]... [peer=PEER]\n\
add logical port PORT on ROUTER\n\
lrp-set-gateway-chassis PORT CHASSIS [PRIORITY]\n\
set gateway chassis for port PORT\n\
@@ -6005,13 +6005,6 @@ nbctl_lrp_add(struct ctl_context *ctx)
break;
}
}
-
- if (!n_networks) {
- ctl_error(ctx, "%s: router port requires specifying a network",
- lrp_name);
- return;
- }
-
char **settings = (char **) &ctx->argv[n_networks + 4];
int n_settings = ctx->argc - 4 - n_networks;
@@ -8057,8 +8050,8 @@ static const struct ctl_command_syntax nbctl_commands[] = {
{ "lr-list", 0, 0, "", nbctl_pre_lr_list, nbctl_lr_list, NULL, "", RO },
/* logical router port commands. */
- { "lrp-add", 4, INT_MAX,
- "ROUTER PORT MAC NETWORK... [COLUMN[:KEY]=VALUE]...",
+ { "lrp-add", 3, INT_MAX,
+ "ROUTER PORT MAC [NETWORK]... [COLUMN[:KEY]=VALUE]...",
nbctl_pre_lrp_add, nbctl_lrp_add, NULL, "--may-exist", RW },
{ "lrp-set-gateway-chassis", 2, 3,
"PORT CHASSIS [PRIORITY]",
This makes it so that networks are an optional argument for lrp-add, and in the case where no networks are provided it creates the logical router port but doesn't add the routes that require ipv4. This is useful as part of an effort to get OVN+BGP unnumbered working with minimal configuration. Signed-off-by: MJ Ponsonby <mj.ponsonby@canonical.com> --- NEWS | 2 ++ ovn-nb.ovsschema | 6 +++--- ovn-nb.xml | 1 + tests/ovn-nbctl.at | 13 +++++++++++++ utilities/ovn-nbctl.8.xml | 6 +++--- utilities/ovn-nbctl.c | 13 +++---------- 6 files changed, 25 insertions(+), 16 deletions(-)