still can be configured via extra arguments for DPDK EAL.
- New support for multiple VLANs (802.1ad or "QinQ"), including a new
"dot1q-tunnel" port VLAN mode.
+ - In ovn-vsctl and vtep-ctl, record UUIDs in commands may now be
+ abbreviated to 4 hex digits.
- OVN:
* IPAM for IPv4 can now exclude user-defined addresses from assignment.
* IPAM can now assign IPv6 addresses.
* Allow ovn-controller SSL configuration to be obtained from vswitchd
database.
* ovn-trace now has basic support for tracing distributed firewalls.
+ * In ovn-nbctl and ovn-sbctl, record UUIDs in commands may now be
+ abbreviated to 4 hex digits.
- Add the command 'ovs-appctl stp/show' (see ovs-vswitchd(8)).
- OpenFlow:
* Increased support for OpenFlow 1.6 (draft).
return final;
}
+static bool
+is_partial_uuid_match(const struct uuid *uuid, const char *match)
+{
+ char uuid_s[UUID_LEN + 1];
+ snprintf(uuid_s, sizeof uuid_s, UUID_FMT, UUID_ARGS(uuid));
+ return !strncmp(uuid_s, match, strlen(match));
+}
+
static const struct ovsdb_idl_row *
get_row(struct ctl_context *ctx,
const struct ovsdb_idl_table_class *table, const char *record_id,
}
}
}
+ if (!row
+ && record_id[uuid_is_partial_string(record_id)] == '\0'
+ && strlen(record_id) >= 4) {
+ for (const struct ovsdb_idl_row *r = ovsdb_idl_first_row(ctx->idl,
+ table);
+ r != NULL;
+ r = ovsdb_idl_next_row(r)) {
+ if (is_partial_uuid_match(&r->uuid, record_id)) {
+ if (!row) {
+ row = r;
+ } else {
+ ctl_fatal("%s contains 2 or more rows whose UUIDs begin "
+ "with %s: at least "UUID_FMT" and "UUID_FMT,
+ table->name, record_id,
+ UUID_ARGS(&row->uuid),
+ UUID_ARGS(&r->uuid));
+ }
+ }
+ }
+ }
if (must_exist && !row) {
ctl_fatal("no row \"%s\" in table %s", record_id, table->name);
}
<h1>Database Commands</h1>
<p>These commands query and modify the contents of <code>ovsdb</code> tables.
They are a slight abstraction of the <code>ovsdb</code> interface and
- as suchthey operate at a lower level than other <code>ovn-nbctl</code> commands.</p>
+ as such they operate at a lower level than other <code>ovn-nbctl</code> commands.</p>
<p><var>Identifying Tables, Records, and Columns</var></p>
<p>Each of these commands has a <var>table</var> parameter to identify a table
within the database. Many of them also take a <var>record</var> parameter
that identifies a particular record within a table. The <var>record</var>
- parameter may be the UUID for a record, and many tables offer
+ parameter may be the UUID for a record, which may be abbreviated to its
+ first 4 (or more) hex digits, as long as that is unique. Many tables offer
additional ways to identify records. Some commands also take
<var>column</var> parameters that identify a particular field within the
records in a table.</p>
</dl>
+ <p>
+ Record names must be specified in full and with correct capitalization,
+ except that UUIDs may be abbreviated to their first 4 (or more) hex
+ digits, as long as that is unique within the table. Names of tables and
+ columns are not case-sensitive, and <code>-</code> and <code>_</code> are
+ treated interchangeably. Unique abbreviations of table and column names
+ are acceptable, e.g. <code>d</code> or <code>dhcp</code> is sufficient
+ to identify the <code>DHCP_Options</code> table.
+ </p>
+
<xi:include href="lib/db-ctl-base.xml" xmlns:xi="http://www.w3.org/2003/XInclude"/>
<h1>Synchronization Commands</h1>
as part of the SSL certificate chain. The SSL protocol does not
require the controller to send the CA certificate.
.
+.SS "Database Commands"
+.
+These commands query and modify the contents of \fBovsdb\fR tables.
+They are a slight abstraction of the \fBovsdb\fR interface and as such
+they operate at a lower level than other \fBovs\-sbctl\fR commands.
+.PP
+.ST "Identifying Tables, Records, and Columns"
+.PP
+Each of these commands has a \fItable\fR parameter to identify a table
+within the database. Many of them also take a \fIrecord\fR parameter
+that identifies a particular record within a table. The \fIrecord\fR
+parameter may be the UUID for a record, and many tables offer
+additional ways to identify records. Some commands also take
+\fIcolumn\fR parameters that identify a particular field within the
+records in a table.
+.\" It would be kind to list all the tables and their supported identifiers
+.\" here.
+.PP
+Record names must be specified in full and with correct
+capitalization, except that UUIDs may be abbreviated to their first 4
+(or more) hex digits, as long as that is unique within the table.
+Names of tables and columns are not case-sensitive, and \fB\-\fR and
+\fB_\fR are treated interchangeably. Unique abbreviations of table
+and column names are acceptable, e.g. \fBaddr\fR or \fBa\fR is
+sufficient to identify the \fBAddress_Set\fR table.
+.
.so lib/db-ctl-base.man
.SH "EXIT STATUS"
.IP "0"
char uuid_s[UUID_LEN + 1];
snprintf(uuid_s, sizeof uuid_s, UUID_FMT, UUID_ARGS(uuid));
+ /* We strip leading zeros because we want to accept cookie values derived
+ * from UUIDs, and cookie values are printed without leading zeros because
+ * they're just numbers. */
const char *s1 = strip_leading_zero(uuid_s);
const char *s2 = strip_leading_zero(match);
Configuration for Auto Attach within a bridge.
.PP
Record names must be specified in full and with correct
-capitalization. Names of tables and columns are not case-sensitive,
-and \fB\-\-\fR and \fB_\fR are treated interchangeably. Unique
-abbreviations are acceptable, e.g. \fBnet\fR or \fBn\fR is sufficient
-to identify the \fBNetFlow\fR table.
+capitalization, except that UUIDs may be abbreviated to their first 4
+(or more) hex digits, as long as that is unique within the table.
+Names of tables and columns are not case-sensitive, and \fB\-\fR and
+\fB_\fR are treated interchangeably. Unique abbreviations of table
+and column names are acceptable, e.g. \fBnet\fR or \fBn\fR is
+sufficient to identify the \fBNetFlow\fR table.
.
.so lib/db-ctl-base.man
.SH "EXAMPLES"
locator name.
.PP
Record names must be specified in full and with correct
-capitalization. Names of tables and columns are not case-sensitive,
-and \fB\-\-\fR and \fB_\fR are treated interchangeably. Unique
-abbreviations are acceptable, e.g. \fBman\fR or \fBm\fR is sufficient
-to identify the \fBManager\fR table.
+capitalization, except that UUIDs may be abbreviated to their first 4
+(or more) hex digits, as long as that is unique within the table.
+Names of tables and columns are not case-sensitive, and \fB\-\fR and
+\fB_\fR are treated interchangeably. Unique abbreviations of table
+and column names are acceptable, e.g. \fBman\fR or \fBm\fR is
+sufficient to identify the \fBManager\fR table.
.
.so lib/db-ctl-base.man
.PP