OVS-APPCTL(8)                    Open vSwitch                    OVS-APPCTL(8)

NAME
       ovs-appctl - utility for configuring running Open vSwitch daemons

SYNOPSIS
       ovs-appctl  [--target=target  |  -t  target] [--timeout=secs | -T secs]
       [--format=format | -f format] [--pretty] command [arg ...]

       ovs-appctl --help

       ovs-appctl --version

DESCRIPTION
       Open vSwitch daemons accept certain  commands  at  runtime  to  control
       their behavior and query their settings.  Every daemon accepts a common
       set  of  commands documented under Common Commands below.  Some daemons
       support  additional  commands  documented  in   their   own   manpages.
       ovs-vswitchd in particular accepts a number of additional commands doc‐
       umented in ovs-vswitchd(8).

       The  ovs-appctl program provides a simple way to invoke these commands.
       The command to be sent is specified on  ovs-appctl’s  command  line  as
       non-option arguments.  ovs-appctl sends the command and prints the dae‐
       mon’s response on standard output.

       In normal use only a single option is accepted:

       • -t target or --target=target

         Tells ovs-appctl which daemon to contact.

         If target begins with / it must name a Unix domain socket on which an
         Open vSwitch daemon is listening for control channel connections.  By
         default,  each  daemon  listens on a Unix domain socket in the rundir
         (e.g. /run) named <program>.<pid>.ctl, where <program>  is  the  pro‐
         gram’s   name   and  <pid>  is  its  process  ID.   For  example,  if
         ovs-vswitchd has PID 123, it would listen on ovs-vswitchd.123.ctl.

         Otherwise, ovs-appctl looks in the rundir for a pidfile, that  is,  a
         file whose contents are the process ID of a running process as a dec‐
         imal  number,  named target.pid.  (The --pidfile option makes an Open
         vSwitch daemon create a pidfile.)  ovs-appctl reads the pidfile, then
         looks in the rundir for a Unix socket named  target.<pid>.ctl,  where
         <pid>  is  replaced by the process ID read from the pidfile, and uses
         that file as if it had been specified directly as the target.

         On Windows, target can be an absolute path to a file that contains  a
         localhost  TCP  port on which an Open vSwitch daemon is listening for
         control channel connections. By default, each daemon writes  the  TCP
         port  on  which  it is listening for control connection into the file
         <program>.ctl located inside the rundir. If target is not an absolute
         path, ovs-appctl looks in the rundir for  a  file  named  target.ctl.
         The default target is ovs-vswitchd.

       • -T secs or --timeout=secs

         By  default, or with a secs of 0, ovs-appctl waits forever to connect
         to the daemon and receive a response.  This option limits runtime  to
         approximately secs seconds.  If the timeout expires, ovs-appctl exits
         with a SIGALRM signal.

       • -f format or --format=format

         Tells  ovs-appctl  which output format to use.  By default, or with a
         format of text, ovs-appctl will print plain-text  for  humans.   When
         format is json, ovs-appctl will return a JSON document.  When json is
         requested,  but  a  command  has  not  implemented  JSON  output, the
         plain-text output will be wrapped in a provisional JSON document with
         the following structure:

            {"reply-format":"plain","reply":"$PLAIN_TEXT_HERE"}

       • --pretty

         By default, JSON output is printed as compactly  as  possible.   This
         option  causes  JSON in output to be printed in a more readable fash‐
         ion.  For example, members of objects  and  elements  of  arrays  are
         printed one per line, with indentation.  Requires --format=json.

COMMON COMMANDS
       Every  Open vSwitch daemon supports a common set of commands, which are
       documented in this section.

   General Commands
       These commands display daemon-specific commands and  the  running  ver‐
       sion.   Note  that  these  commands  are  different from the --help and
       --version options that return information about the ovs-appctl  utility
       itself.

       • list-commands

         Lists the commands supported by the target.

       • version

         Displays the version and compilation date of the target.

   Logging Commands
       Open  vSwitch  has  several log levels.  The highest-severity log level
       is:

       • off

         No message is ever logged at this level, so setting a logging  desti‐
         nation’s log level to off disables logging to that destination.

       The  following  log levels, in order of descending severity, are avail‐
       able:

       • emer

         A major failure forced a process to abort.

       • err

         A high-level operation or a  subsystem  failed.   Attention  is  war‐
         ranted.

       • warn

         A low-level operation failed, but higher-level subsystems may be able
         to recover.

       • info

         Information  that  may  be  useful in retrospect when investigating a
         problem.

       • dbg

         Information useful only to someone with intricate  knowledge  of  the
         system,  or that would commonly cause too-voluminous log output.  Log
         messages at this level are not logged by default.

       Every Open vSwitch daemon supports the following commands for examining
       and adjusting log levels:

       • vlog/list

         Lists the known logging modules and their current levels.

       • vlog/list-pattern

         Lists logging pattern used for each destination.

       • vlog/set [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.

           On Windows platform, syslog is only useful if  target  was  started
           with the --syslog-target option (it has no effect otherwise).

         • off, emer, err, warn, info, or dbg, to control the log level.  Mes‐
           sages  of the given severity or higher will be logged, and messages
           of lower severity will be filtered out.  off filters out  all  mes‐
           sages.

         Case is not significant within spec.

         Regardless of the log levels set for file, logging to a file will not
         take  place  unless  the  target  application  was  invoked  with the
         --log-file option.

         For compatibility with older versions of OVS, any is accepted  within
         spec but it has no effect.

       • vlog/set PATTERN:destination:pattern

         Sets the log pattern for destination to pattern.  Each time a message
         is  logged  to  destination, pattern determines the message’s format‐
         ting.  Most characters in pattern are copied literally  to  the  log,
         but special escapes beginning with % are expanded as follows:

         • %A

           The name of the application logging the message, e.g. ovs-vswitchd.

         • %B

           The RFC5424 syslog PRI of the message.

         • %c

           The  name of the module (as shown by ovs-appctl --list) logging the
           message.

         • %d

           The current date and time in ISO 8601 format (YYYY-MM-DD HH:MM:SS).

         • %d{format}

           The current date and time in the specified format, which takes  the
           same  format as the template argument to strftime(3).  As an exten‐
           sion, any # characters in format will  be  replaced  by  fractional
           seconds,  e.g.  use  %H:%M:%S.###  for the time to the nearest mil‐
           lisecond.  Sub-second times are only approximate and currently dec‐
           imal places after the third will always be reported as zero.

         • %D

           The current UTC date  and  time  in  ISO  8601  format  (YYYY-MM-DD
           HH:MM:SS).

         • %D{format}

           The  current UTC date and time in the specified format, which takes
           the same format as the template argument to strftime(3).   Supports
           the same extension for sub-second resolution as %d{...}.

         • %E

           The hostname of the node running the application.

         • %m

           The message being logged.

         • %N

           A serial number for this message within this run of the program, as
           a decimal number.  The first message a program logs has serial num‐
           ber 1, the second one has serial number 2, and so on.

         • %n

           A new-line.

         • %p

           The level at which the message is logged, e.g. DBG.

         • %P

           The program’s process ID (pid), as a decimal number.

         • %r

           The  number  of milliseconds elapsed from the start of the applica‐
           tion to the time the message was logged.

         • %t

           The subprogram name, that is, an identifying name for  the  process
           or  thread  that  emitted  the log message, such as monitor for the
           process used for --monitor or  main  for  the  primary  process  or
           thread in a program.

         • %T

           The subprogram name enclosed in parentheses, e.g. (monitor), or the
           empty string for the primary process or thread in a program.

         • %%

           A literal %.

         A few options may appear between the % and the format specifier char‐
         acter, in this order:

         • -

           Left  justify the escape’s expansion within its field width.  Right
           justification is the default.

         • 0

           Pad the field to the field width with 0 characters.   Padding  with
           spaces is the default.

         • width

           A  number specifies the minimum field width.  If the escape expands
           to fewer characters than width then it is padded to fill the  field
           width.  (A field wider than width is not truncated to fit.)

         The  default  pattern  for  console  and  file output is %D{%Y-%m-%dT
         %H:%M:%SZ}|%05N|%c|%p|%m; for syslog output, %05N|%c|%p|%m.

         Daemons written in Python (e.g. ovs-monitor-ipsec) do not allow  con‐
         trol over the log pattern.

       • vlog/set 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.

       • vlog/close

         Causes the daemon to close  its  log  file,  if  it  is  open.   (Use
         vlog/reopen to reopen it later.)

       • vlog/reopen

         Causes  the daemon to close its log file, if it is open, and then re‐
         open it.  (This is useful after rotating log files, to  cause  a  new
         log file to be used.)

         This has no effect if the target application was not invoked with the
         --log-file option.

OPTIONS
       -h, --help
              Prints a brief help message to the console.

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

SEE ALSO
       ovs-appctl   can   control   all   Open   vSwitch   daemons,  including
       ovs-vswitchd(8) and ovsdb-server(1).

AUTHOR
       The Open vSwitch Development Community

COPYRIGHT
       2016-2024, The Open vSwitch Development Community


3.4                              Nov 16, 2024                    OVS-APPCTL(8)