Provided by: openvswitch-common_2.9.8-0ubuntu0.18.04.5_amd64 bug

NAME

       ovsdb-client - command-line interface to ovsdb-server(1)

SYNOPSIS

       Server-Level Commands:
              ovsdb-client [options] list-dbs [server]

       Database Schema Commands:
              ovsdb-client [options] get-schema [server] [database]
              ovsdb-client [options] list-tables [server] [database]
              ovsdb-client [options] list-columns [server] [database] [table]

       Database Version Management Commands:
              ovsdb-client [options] convert [server] schema
              ovsdb-client [options] needs-conversion [server] schema
              ovsdb-client [options] get-schema-version [server] [database]

       Data Management Commands:
              ovsdb-client [options] transact [server] transaction
              ovsdb-client [options] query [server] transaction
              ovsdb-client [options] dump [server] [database] [table [column...]]
              ovsdb-client [options] backup [server] [database] > snapshot
              ovsdb-client [options] [--force] restore [server] [database] < snapshot
              ovsdb-client [options] monitor [server] [database] table [column[,column]...]...
              ovsdb-client [options] monitor [server] [database] ALL
              ovsdb-client   [options]   monitor-cond   [server]   [database]   conditions  table
              [column[,column]...]...
              ovsdb-client [options] wait [server] database state

       Testing Commands:
              ovsdb-client [options] lock [server] lock
              ovsdb-client [options] steal [server] lock
              ovsdb-client [options] unlock [server] lock

       Other Commands:
              ovsdb-client help

       Cluster Options:
              [--no-leader-only]

       Output formatting options:
              [--format=format] [--data=format] [--no-headings] [--pretty] [--bare] [--timestamp]

       Daemon options:
              [--pidfile[=pidfile]]      [--overwrite-pidfile]      [--detach]       [--no-chdir]
              [--no-self-confinement]

       Logging options:
              [-v[module[:destination[:level]]]]...
              [--verbose[=module[:destination[:level]]]]...
              [--log-file[=file]]

       Public key infrastructure options:
              [--private-key=privkey.pem]
              [--certificate=cert.pem]
              [--ca-cert=cacert.pem]
              [--bootstrap-ca-cert=cacert.pem]

       SSL connection options:
              [--ssl-protocols=protocols]
              [--ssl-ciphers=ciphers]

       Common options:
              [-h | --help] [-V | --version]

DESCRIPTION

       The  ovsdb-client  program  is  a  command-line  client  for  interacting  with  a running
       ovsdb-server process.  Each command connects to the specified OVSDB server, which  may  be
       an  OVSDB  active  or  passive  connection  method, as described in ovsdb(7).  The default
       server is unix:/var/run/openvswitch/db.sock and the default database is Open_vSwitch.

       ovsdb-client supports the method1,method2,...,methodN syntax  described  in  ovsdb(7)  for
       connecting to a cluster.  When this syntax is used, ovsdb-client tries the cluster members
       in random order until it finds the cluster leader.  Specify the --no-leader-only option to
       instead accept any server that is connected to the cluster.

       For an introduction to OVSDB and its implementation in Open vSwitch, see ovsdb(7).

       The following sections describe the commands that ovsdb-client supports.

   Server-Level Commands
       Most  ovsdb-client  commands work with an individual database, but these commands apply to
       an entire database server.

       list-dbs [server]
              Connects to server, retrieves the list of known databases, and prints them one  per
              line.  These database names are the ones that other commands may use for database.

   Database Schema Commands
       These commands obtain the schema from a database and print it or part of it.

       get-schema [server] [database]
              Connects  to  server,  retrieves  the  schema  for  database, and prints it in JSON
              format.

       list-tables [server] [database]
              Connects to server, retrieves the schema for database, and prints a  table  listing
              the name of each table within the database.

       list-columns [server] [database] table
              Connects  to  server, retrieves the schema for database, and prints a table listing
              the name and type of each column.  If table is  specified,  only  columns  in  that
              table are listed; otherwise, the tables include columns in all tables.

   Database Version Management Commands
       An  OVSDB  schema  has  a schema version number, and an OVSDB database embeds a particular
       version of an OVSDB schema.  These version numbers take the form x.y.z, e.g.  1.2.3.   The
       OVSDB  implementation  does not enforce a particular version numbering scheme, but schemas
       managed within the Open vSwitch project use the following approach.  Whenever the database
       schema  is changed in a non-backward compatible way (e.g. deleting a column or a table), x
       is incremented (and y and z are reset to 0).  When the database schema  is  changed  in  a
       backward  compatible  way  (e.g. adding a new column), y is incremented (and z is reset to
       0).  When the database schema is changed cosmetically (e.g. reindenting its syntax), z  is
       incremented.

       Some OVSDB databases and schemas, especially very old ones, do not have a version number.

       Schema version numbers and Open vSwitch version numbers are independent.

       These commands work with different versions of OVSDB schemas and databases.

       convert [server] schema
              Reads an OVSDB schema in JSON format, as specified in the OVSDB specification, from
              schema, then connects to server and requests the server  to  convert  the  database
              whose name is specified in schema to the schema also specified in schema.

              The  conversion is atomic, consistent, isolated, and durable.  Following the schema
              change, the server notifies clients that use the set_db_change_aware RPC introduced
              in  Open  vSwitch 2.9 and cancels their outstanding transactions and monitors.  The
              server disconnects other clients, enabling them to  notice  the  change  when  they
              reconnect.

              This  command can do simple ``upgrades'' and ``downgrades'' on a database's schema.
              The data in the database must be valid when interpreted under schema, with only one
              exception:  data  for  tables  and columns that do not exist in schema are ignored.
              Columns that exist in schema but not in the  database  are  set  to  their  default
              values.  All of schema's constraints apply in full.

              Some  uses  of  this  command  can  cause  unrecoverable  data  loss.  For example,
              converting a database from a schema that has a given column or table  to  one  that
              does  not will delete all data in that column or table.  Back up critical databases
              before converting them.

              This command works with clustered and standalone databases.   Standalone  databases
              may also be converted (offline) with ovsdb-tool's convert command.

       needs-conversion [server] schema
              Reads  the schema from schema, then connects to server and requests the schema from
              the database whose name is specified in schema.  If the two schemas are  the  same,
              prints no on stdout; if they differ, prints yes.

       get-schema-version [server] [database]
              Connects  to  server,  retrieves  the  schema  for database, and prints its version
              number on stdout.  If database was created before schema versioning was introduced,
              then it will not have a version number and this command will print a blank line.

       get-schema-cksum [server] [database]
              Connects  to  server, retrieves the schema for database, and prints its checksum on
              stdout.  If database does not include a checksum, prints a blank line.

   Data Management Commands
       These commands read or modify the data in a database.

       transact [server] transaction
              Connects to server, sends it the specified transaction, which must be a JSON  array
              appropriate  for  use  as the params to a JSON-RPC transact request, and prints the
              received reply on stdout.

       query [server] transaction
              This commands acts like a read-only version of transact.  It  connects  to  server,
              sends  it the specified transaction, which must be a JSON array appropriate for use
              as the params to a JSON-RPC transact request, and  prints  the  received  reply  on
              stdout.   To ensure that the transaction does not modify the database, this command
              appends an abort operation to the set of operations included in transaction  before
              sending it to the database, and then removes the abort result from the reply (if it
              is present).

       dump [server] [database] [table [column...]]
              Connects to server, retrieves all of the data in database, and prints it on  stdout
              as  a series of tables. If table is specified, only that table is retrieved.  If at
              least one column is specified, only those columns are retrieved.

       backup [server] [database] > snapshot
              Connects to server, retrieves a snapshot of the schema and data  in  database,  and
              prints  it  on  stdout  in  the  format used for OVSDB standalone and active-backup
              databases.  This is an appropriate  way  to  back  up  any  remote  database.   The
              database  snapshot  that  it  outputs  is  suitable  to  be  served  up directly by
              ovsdb-server or used as the input to ovsdb-client restore.

              Another way to back up a standalone  or  active-backup  database  is  to  copy  its
              database file, e.g. with cp.  This is safe even if the database is in use.

              The  output  does  not  include  ephemeral  columns, which by design do not survive
              across restarts of ovsdb-server.

       [--force] restore [server] [database] < snapshot
              Reads snapshot,  which  must  be  a  OVSDB  standalone  or  active-backup  database
              (possibly  but  not necessarily created by ovsdb-client backup).  Then, connects to
              server, verifies that database and snapshot have the same schema, then deletes  all
              of  the  data  in  database  and  replaces it by snapshot.  The replacement happens
              atomically, in a single transaction.

              UUIDs for rows in the restored database will differ from those in snapshot, because
              the  OVSDB  protocol  does  not allow clients to specify row UUIDs.  Another way to
              restore a standalone or active-backup database, which does also restore row  UUIDs,
              is  to  stop the server or servers, replace the database file by the snapshot, then
              restart the database.  Either way, ephemeral columns are  not  restored,  since  by
              design they do not survive across restarts of ovsdb-server.

              Normally  restore  exits  with a failure if snapshot and the server's database have
              different schemas.  In such a case, it is a good idea to convert  the  database  to
              the  new  schema  before restoring, e.g. with ovsdb-client convert.  Use --force to
              proceed regardless of schema differences even though the restore might fail with an
              error or succeed with surprising results.

       monitor [server] [database] table [column[,column]...]...
       monitor-cond [server] [database] conditions table [column[,column]...]...
              Connects to server and monitors the contents of rows that match conditions in table
              in database. By default, the initial contents of table  are  printed,  followed  by
              each  change  as it occurs.  If conditions empty, all rows will be monitored. If at
              least one column is specified, only those columns  are  monitored.   The  following
              column names have special meanings:

              !initial
                     Do not print the initial contents of the specified columns.

              !insert
                     Do not print newly inserted rows.

              !delete
                     Do not print deleted rows.

              !modify
                     Do not print modifications to existing rows.

              Multiple  [column[,column]...]  groups may be specified as separate arguments, e.g.
              to apply different reporting parameters to each group.  Whether multiple groups  or
              only  a  single  group is specified, any given column may only be mentioned once on
              the command line.

              conditions is a JSON array of <condition> as defined  in  RFC  7047  5.1  with  the
              following change: A condition can be either a 3-element JSON array as deescribed in
              the RFC or a boolean value..

              If --detach is used with monitor or monitor-cond, then ovsdb-client detaches  after
              it has successfully received and printed the initial contents of table.

              The  monitor  command uses RFC 7047 "monitor" method to open a monitor session with
              the server. The monitor-cond command uses RFC 7047 extension "monitor_cond" method.
              See ovsdb-server(1) for details.

       monitor [server] [database] ALL
              Connects  to  server  and  monitors the contents of all tables in database.  Prints
              initial values and all kinds of changes  to  all  columns  in  the  database.   The
              --detach  option  causes  ovsdb-client to detach after it successfully receives and
              prints the initial database contents.

              The monitor command uses RFC 7047 "monitor" method to open a monitor  session  with
              the server.

       wait [server] database state
              Waits for database on server to enter a desired state, which may be one of:

              added  Waits until a database with the given name has been added to server.

              connected
                     Waits  until a database with the given name has been added to server.  Then,
                     if database is  clustered,  additionally  waits  until  it  has  joined  and
                     connected to its cluster.

              removed
                     Waits  until  database  has been removed from the database server.  This can
                     also be used to wait for a database to complete leaving its cluster, because
                     ovsdb-server removes a database at that point.

              database  is  mandatory  for  this  command  because  it is often used to check for
              databases that have not yet been added to the  server,  so  that  the  ovsdb-client
              semantics of acting on a default database do not work.

              This command acts on a particular database server, not on a cluster, so server must
              name a single server, not a comma-delimited list of servers.

   Testing commands
       These commands are mostly of interest for testing the correctness of the OVSDB server.

       lock [server] lock
       steal [server] lock
       unlock [server] lock
              Connects to server and issues corresponding  RFC  7047  lock  operations  on  lock.
              Prints  json  reply  or  subsequent  update  messages.   The --detach option causes
              ovsdb-client to detach after it successfully receives and prints the initial reply.

              When running with the --detach option, lock, steal, unlock and exit commands can be
              issued  by  using  ovs-appctl.  exit  command  causes the ovsdb-client to close its
              ovsdb-server connection before exit.  The lock, steal and unlock  commands  can  be
              used to issue additional lock operations over the same ovsdb-server connection. All
              above commands take a single lock argument, which does not have to be the  same  as
              the lock that ovsdb-client started with.

OPTIONS

   Output Formatting Options
       Much  of  the  output  from  ovsdb-client is in the form of tables.  The following options
       controlling output formatting:

       -f format
       --format=format
              Sets the type of table formatting.  The following types of format are available:

              table (default)
                     2-D text tables with aligned columns.

              list   A list with one column per line and rows separated by a blank line.

              html   HTML tables.

              csv    Comma-separated values as defined in RFC 4180.

              json   JSON format as defined in RFC 4627.   The  output  is  a  sequence  of  JSON
                     objects,  each  of which corresponds to one table.  Each JSON object has the
                     following members with the noted values:

                     caption
                            The table's caption.  This member is omitted  if  the  table  has  no
                            caption.

                     headings
                            An  array with one element per table column.  Each array element is a
                            string giving the corresponding column's heading.

                     data   An array with one element per table row.  Each  element  is  also  an
                            array  with  one  element  per  table  column.   The elements of this
                            second-level array are the cells that constitute  the  table.   Cells
                            that  represent  OVSDB data or data types are expressed in the format
                            described  in  the  OVSDB  specification;  other  cells  are   simply
                            expressed as text strings.

       -d format
       --data=format
              Sets  the  formatting for cells within output tables unless the table format is set
              to json, in which case json formatting is always used when formatting  cells.   The
              following types of format are available:

              string (default)
                     The simple format described in the Database Values section of ovs-vsctl(8).

              bare   The  simple  format  with  punctuation  stripped  off: [] and {} are omitted
                     around sets, maps, and empty columns, items within sets and maps are  space-
                     separated,  and  strings  are  never  quoted.  This format may be easier for
                     scripts to parse.

              json   The RFC 4627 JSON format as described above.

       --no-headings
              This option suppresses the heading row that otherwise appears in the first  row  of
              table output.

       --pretty
              By default, JSON in output is printed as compactly as possible.  This option causes
              JSON in output to be printed in a more readable fashion.  Members  of  objects  and
              elements of arrays are printed one per line, with indentation.

              This option does not affect JSON in tables, which is always printed compactly.

       --bare Equivalent to --format=list --data=bare --no-headings.

       --max-column-width=n
              For  table  output only, limits the width of any column in the output to n columns.
              Longer cell data is truncated to fit, as necessary.  Columns are always wide enough
              to display the column names, if the heading row is printed.

       --timestamp
              For  the  monitor  and monitor-cond commands, add a timestamp to each table update.
              Most output formats add the timestamp on a line of its own just  above  the  table.
              The  JSON output format puts the timestamp in a member of the top-level JSON object
              named time.

       -t
       --timeout=secs
              Limits ovsdb-client runtime to approximately secs seconds.  If the timeout expires,
              ovsdb-client will exit with a SIGALRM signal.

   Daemon Options
       The  daemon  options  apply only to the monitor and monitor-cond commands.  With any other
       command, they have no effect.

       The following options are valid on POSIX based platforms.

       --pidfile[=pidfile]
              Causes a file (by default, ovsdb-client.pid) to be created indicating  the  PID  of
              the  running  process.  If the pidfile argument is not specified, or if it does not
              begin with /, then it is created in /var/run/openvswitch.

              If --pidfile is not specified, no pidfile is created.

       --overwrite-pidfile
              By default, when --pidfile is specified and the specified  pidfile  already  exists
              and  is  locked  by  a  running  process,  ovsdb-client  refuses to start.  Specify
              --overwrite-pidfile to cause it to instead overwrite the pidfile.

              When --pidfile is not specified, this option has no effect.

       --detach
              Runs ovsdb-client as a background process.  The process forks, and in the child  it
              starts  a  new  session,  closes  the standard file descriptors (which has the side
              effect of disabling logging to the console), and changes its current  directory  to
              the  root  (unless  --no-chdir  is  specified).   After  the  child  completes  its
              initialization, the parent exits.

       --monitor
              Creates an additional process to monitor the ovsdb-client daemon.   If  the  daemon
              dies  due to a signal that indicates a programming error (SIGABRT, SIGALRM, SIGBUS,
              SIGFPE, SIGILL, SIGPIPE, SIGSEGV, SIGXCPU, or SIGXFSZ)  then  the  monitor  process
              starts  a  new  copy  of  it.   If the daemon dies or exits for another reason, the
              monitor process exits.

              This option is normally used with --detach, but it also functions without it.

       --no-chdir
              By default, when --detach is specified, ovsdb-client changes  its  current  working
              directory   to   the   root  directory  after  it  detaches.   Otherwise,  invoking
              ovsdb-client from a carelessly chosen directory  would  prevent  the  administrator
              from unmounting the file system that holds that directory.

              Specifying  --no-chdir  suppresses  this  behavior,  preventing  ovsdb-client  from
              changing its current working directory.  This may be  useful  for  collecting  core
              files,  since  it  is  common behavior to write core dumps into the current working
              directory and the root directory is not a good directory to use.

              This option has no effect when --detach is not specified.

       --no-self-confinement
              By default daemon will try to self-confine itself to work with  files  under  well-
              know,  at  build-time  whitelisted  directories.   It  is better to stick with this
              default behavior and not to use this flag unless some other Access Control is  used
              to  confine  daemon.  Note that in contrast to other access control implementations
              that are typically enforced from kernel-space (e.g. DAC or  MAC),  self-confinement
              is  imposed from the user-space daemon itself and hence should not be considered as
              a full confinement strategy, but instead should be viewed as an additional layer of
              security.

       --user Causes  ovsdb-client  to  run  as  a different user specified in "user:group", thus
              dropping most of the root privileges. Short forms  "user"  and  ":group"  are  also
              allowed,  with current user or group are assumed respectively. Only daemons started
              by the root user accepts this argument.

              On Linux, daemons will be granted  CAP_IPC_LOCK  and  CAP_NET_BIND_SERVICES  before
              dropping   root  privileges.  Daemons  that  interact  with  a  datapath,  such  as
              ovs-vswitchd, will be granted two additional capabilities, namely CAP_NET_ADMIN and
              CAP_NET_RAW. The capability change will apply even if new user is "root".

              On  Windows,  this  option  is  not  currently  supported.  For  security  reasons,
              specifying this option will cause the daemon process not to start.

   Logging Options
       -v[spec]
       --verbose=[spec]
              Sets logging levels.  Without any spec, sets the log level  for  every  module  and
              destination  to  dbg.   Otherwise,  spec  is a list of words separated by spaces or
              commas or colons, up to one from each category below:

              •      A valid module name, as displayed by the vlog/list command on ovs-appctl(8),
                     limits the log level change to the specified module.

              •      syslog,  console,  or  file,  to  limit  the log level change to only to the
                     system log, to the console, or to a file,  respectively.   (If  --detach  is
                     specified,  ovsdb-client closes its standard file descriptors, so logging to
                     the console will have no effect.)

                     On Windows platform, syslog is accepted as a word and is only  useful  along
                     with the --syslog-target option (the word has no effect otherwise).

              •      off,  emer,  err, warn, info, or dbg, to control the log level.  Messages of
                     the given severity or higher will be logged, and messages of lower  severity
                     will  be filtered out.  off filters out all messages.  See ovs-appctl(8) for
                     a definition of each log level.

              Case is not significant within spec.

              Regardless of the log levels set for file, logging to a file will  not  take  place
              unless --log-file is also specified (see below).

              For  compatibility with older versions of OVS, any is accepted as a word but has no
              effect.

       -v
       --verbose
              Sets the maximum logging verbosity level, equivalent to --verbose=dbg.

       -vPATTERN:destination:pattern
       --verbose=PATTERN:destination:pattern
              Sets the log pattern for destination to pattern.   Refer  to  ovs-appctl(8)  for  a
              description of the valid syntax for pattern.

       -vFACILITY:facility
       --verbose=FACILITY:facility
              Sets  the  RFC5424  facility of the log message. facility can be one of kern, user,
              mail, daemon, auth, syslog, lpr, news, uucp, clock, ftp, ntp, audit, alert, clock2,
              local0, local1, local2, local3, local4, local5, local6 or local7. If this option is
              not specified, daemon is used as the default for the local system syslog and local0
              is  used  while  sending  a  message to the target provided via the --syslog-target
              option.

       --log-file[=file]
              Enables logging to a file.  If file is specified, then it is used as the exact name
              for  the  log  file.   The  default  log  file  name  used  if  file  is omitted is
              /var/log/openvswitch/ovsdb-client.log.

       --syslog-target=host:port
              Send syslog messages to UDP port on host, in addition to the  system  syslog.   The
              host must be a numerical IP address, not a hostname.

       --syslog-method=method
              Specify  method  how  syslog  messages  should be sent to syslog daemon.  Following
              forms are supported:

              •      libc, use libc syslog() function.  This is the default  behavior.   Downside
                     of using this options is that libc adds fixed prefix to every message before
                     it is actually sent to the syslog daemon over /dev/log UNIX domain socket.

              •      unix:file, use UNIX domain socket  directly.   It  is  possible  to  specify
                     arbitrary  message format with this option.  However, rsyslogd 8.9 and older
                     versions use hard coded parser  function  anyway  that  limits  UNIX  domain
                     socket use.  If you want to use arbitrary message format with older rsyslogd
                     versions, then use UDP socket to localhost IP address instead.

              •      udp:ip:port, use UDP socket.   With  this  method  it  is  possible  to  use
                     arbitrary  message  format  also  with  older rsyslogd.  When sending syslog
                     messages over UDP socket extra precaution needs to be  taken  into  account,
                     for example, syslog daemon needs to be configured to listen on the specified
                     UDP port, accidental iptables rules could be interfering with  local  syslog
                     traffic  and  there  are  some  security  considerations  that  apply to UDP
                     sockets, but do not apply to UNIX domain sockets.

   Public Key Infrastructure Options
       -p privkey.pem
       --private-key=privkey.pem
              Specifies a PEM file containing the private key used as ovsdb-client's identity for
              outgoing SSL connections.

       -c cert.pem
       --certificate=cert.pem
              Specifies  a  PEM  file  containing  a  certificate  that certifies the private key
              specified on -p or --private-key to be trustworthy.  The certificate must be signed
              by  the  certificate  authority  (CA)  that the peer in SSL connections will use to
              verify it.

       -C cacert.pem
       --ca-cert=cacert.pem
              Specifies a PEM file containing the CA certificate that ovsdb-client should use  to
              verify  certificates  presented  to  it  by  SSL  peers.   (This  may  be  the same
              certificate that SSL peers use  to  verify  the  certificate  specified  on  -c  or
              --certificate, or it may be a different one, depending on the PKI design in use.)

       -C none
       --ca-cert=none
              Disables  verification  of  certificates presented by SSL peers.  This introduces a
              security risk, because it means that certificates cannot be verified to be those of
              known trusted hosts.

       --bootstrap-ca-cert=cacert.pem
              When  cacert.pem exists, this option has the same effect as -C or --ca-cert.  If it
              does not exist, then ovsdb-client will attempt to obtain the  CA  certificate  from
              the  SSL peer on its first SSL connection and save it to the named PEM file.  If it
              is successful, it will immediately drop the connection and reconnect, and from then
              on  all  SSL  connections  must  be authenticated by a certificate signed by the CA
              certificate thus obtained.

              This option exposes the SSL connection to a man-in-the-middle attack obtaining  the
              initial CA certificate, but it may be useful for bootstrapping.

              This  option is only useful if the SSL peer sends its CA certificate as part of the
              SSL certificate chain.  The SSL protocol does not require the server to send the CA
              certificate.

              This option is mutually exclusive with -C and --ca-cert.

   SSL Connection Options
       --ssl-protocols=protocols
              Specifies, in a comma- or space-delimited list, the SSL protocols ovsdb-client will
              enable for SSL  connections.   Supported  protocols  include  TLSv1,  TLSv1.1,  and
              TLSv1.2.  Regardless of order, the highest protocol supported by both sides will be
              chosen when making the connection.  The default when  this  option  is  omitted  is
              TLSv1,TLSv1.1,TLSv1.2.

       --ssl-ciphers=ciphers
              Specifies,  in  OpenSSL cipher string format, the ciphers ovsdb-client will support
              for SSL connections.  The default when this option is omitted is HIGH:!aNULL:!MD5.

   Other Options
       -h
       --help Prints a brief help message to the console.

       -V
       --version
              Prints version information to the console.

SEE ALSO

       ovsdb(7), ovsdb-server(1), ovsdb-client(1).