ovs-appctl¶
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 documented 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 daemon’s response on standard output.
In normal use only a single option is accepted:
-ttarget or--target=targetTells
ovs-appctlwhich 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 program’s name and <pid> is its process ID. For example, ifovs-vswitchdhas PID 123, it would listen onovs-vswitchd.123.ctl.Otherwise,
ovs-appctllooks in the rundir for a pidfile, that is, a file whose contents are the process ID of a running process as a decimal number, named target.pid. (The--pidfileoption makes an Open vSwitch daemon create a pidfile.)ovs-appctlreads 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>.ctllocated inside the rundir. If target is not an absolute path,ovs-appctllooks in the rundir for a file named target.ctl. The default target isovs-vswitchd.-Tsecs or--timeout=secsBy default, or with a secs of
0,ovs-appctlwaits forever to connect to the daemon and receive a response. This option limits runtime to approximately secs seconds. If the timeout expires,ovs-appctlexits with aSIGALRMsignal.-fformat or--format=formatTells
ovs-appctlwhich output format to use. By default, or with a format oftext,ovs-appctlwill print plain-text for humans. When format isjson,ovs-appctlwill return a JSON document. Whenjsonis 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"}
--prettyBy default, JSON output is printed as compactly as possible. This option causes JSON in output to be printed in a more readable fashion. 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 version.
Note that these commands are different from the --help and
--version options that return information about the
ovs-appctl utility itself.
list-commandsLists the commands supported by the target.
versionDisplays the version and compilation date of the target.
Logging Commands¶
Open vSwitch has several log levels. The highest-severity log level is:
offNo message is ever logged at this level, so setting a logging destination’s log level to
offdisables logging to that destination.
The following log levels, in order of descending severity, are available:
emerA major failure forced a process to abort.
errA high-level operation or a subsystem failed. Attention is warranted.
warnA low-level operation failed, but higher-level subsystems may be able to recover.
infoInformation that may be useful in retrospect when investigating a problem.
dbgInformation 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/listLists the known logging modules and their current levels.
vlog/list-patternLists 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/listcommand onovs-appctl(8), limits the log level change to the specified module.syslog,console, orfile, to limit the log level change to only to the system log, to the console, or to a file, respectively.On Windows platform,
syslogis only useful if target was started with the--syslog-targetoption (it has no effect otherwise).off,emer,err,warn,info, ordbg, to control the log level. Messages of the given severity or higher will be logged, and messages of lower severity will be filtered out.offfilters out all messages.
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-fileoption.For compatibility with older versions of OVS,
anyis accepted within spec but it has no effect.vlog/set PATTERN:destination:patternSets the log pattern for destination to pattern. Each time a message is logged to destination, pattern determines the message’s formatting. Most characters in pattern are copied literally to the log, but special escapes beginning with
%are expanded as follows:%AThe name of the application logging the message, e.g.
ovs-vswitchd.%BThe RFC5424 syslog PRI of the message.
%cThe name of the module (as shown by
ovs-appctl --list) logging the message.%dThe 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
templateargument tostrftime(3). As an extension, any#characters in format will be replaced by fractional 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.%DThe 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
templateargument tostrftime(3). Supports the same extension for sub-second resolution as%d{...}.%EThe hostname of the node running the application.
%mThe message being logged.
%NA serial number for this message within this run of the program, as a decimal number. The first message a program logs has serial number 1, the second one has serial number 2, and so on.
%nA new-line.
%pThe level at which the message is logged, e.g.
DBG.%PThe program’s process ID (pid), as a decimal number.
%rThe number of milliseconds elapsed from the start of the application to the time the message was logged.
%tThe subprogram name, that is, an identifying name for the process or thread that emitted the log message, such as
monitorfor the process used for--monitorormainfor the primary process or thread in a program.%TThe 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 character, in this order:-Left justify the escape’s expansion within its field width. Right justification is the default.
0Pad the field to the field width with
0characters. 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 control over the log pattern.vlog/set FACILITY:facilitySets 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,local6orlocal7.vlog/closeCauses the daemon to close its log file, if it is open. (Use
vlog/reopento reopen it later.)vlog/reopenCauses the daemon to close its log file, if it is open, and then reopen 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-fileoption.
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).