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  ab‐
         solute  path,  ovs-appctl  looks in the rundir for a file named <tar‐
         get>.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  con‐
         nect  to  the daemon and receive a response.  This option limits run‐
         time 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  mes‐
         sage’s formatting.  Most characters in <pattern> are copied literally
         to the log, but special escapes beginning with % are expanded as fol‐
         lows:

         • %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
           extension, any # characters in <format> will be replaced  by  frac‐
           tional  seconds,  e.g. use %H:%M:%S.### for the time to the nearest
           millisecond.  Sub-second times are only approximate  and  currently
           decimal 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,  lo‐
         cal4, 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                              Aug 15, 2024                    OVS-APPCTL(8)