bwctld - B
[ -a auth_mode
] [ -c conf_dir
] [ -f
] [ -G group
] [ -R var_dir
] [ -S nodename:port
] [ -v
] [ -Z
is a server program designed to schedule and run Iperf
, and Owamp
Aside from actually running network measurement tests, the main function of
is to determine which tests are allowable based upon the policy
restrictions configured by the system administrator.
was designed to be run as a stand-alone daemon process. It uses
the classic accept/fork model of handling new requests.
Most of the command line options for bwctld
have analogous options in the
file. The command line takes precedence.
- -a auth_mode
- Specify the authentication modes the server is willing to
use for communication. auth_mode should be set as a character
string with any or all of the characters "AEO". The modes
- [A]uthenticated. This mode encrypts the control
- [E]ncrypted. This mode encrypts the control
connection. If the test supports encryption, this mode will additionally
encrypt the test stream. (Encryption of the test stream is not currently
supported, so this mode is currently identical to authenticated.)
- [O]pen. No encryption of any kind is done.
The server can specify all the modes with which it is willing to communicate.
The most strict mode that both the server and the client are willing to use
will be selected.
- -c conf_dir
- Specify the directory that holds the bwctld
- Current working directory.
- -e facility
- Syslog facility to which messages are logged.
- Enables the bwctld daemon to run with root
permissions. There are legitimate reasons to run bwctld as root,
but it is risky. Forcing this additional option will make it less likely
root permissions are accidently used.
- -G group
- Specify the gid for the bwctld process. group
can be specified using a valid group name or by using -gid. This option is
only used if bwctld is started as root.
- Print a help message.
- -R var_dir
- Specify the directory to hold the bwctld.pid file.
- Current directory
- -S nodename:port
- Specify the address and port on which bwctld will
listen for requests. nodename can be specified using a DNS name or
using the textual representation of the address. It is possible to set the
source address without setting the port simply by leaving off the
':' and port specification. If an IPv6 address is specified, note
that the accepted format contains nodename in square brackets, such
as: [fe80::fe9f:62d8]. This ensures the port number is distinct from the
- nodename is wildcarded as any currently available
address. port is 4823.
- -U user
- Specify the uid for the bwctld process. user
can be specified using a valid user name or by using -uid. This option is
only used if bwctld is started as root.
- Set verbose output. Messages will only go to syslog unless
the -Z option is specified.
- Run the master bwctld process in the foreground. In
this mode, error messages are printed to stderr as well as being sent to
syslog. Also, normal terminal controls are available. (i.e.,
<Cntr-C> will cause the daemon to kill it's child processes and
exit.) This is useful for debugging.
daemon prefers a reasonably synchronized clock. It is
scheduling tests and needs to be sure it has the same idea of when a test
should take place as does the peer test system. Therefore, bwctld
attempts to use NTP specific system calls to determine the accuracy of the
local clock. If those system calls are unavailable, or the administrator has
set the allow_unsync
option in the bwctld.conf
will blindly accept tests assuming the clock is synchronized to
within the sync_fuzz
value that is also defined in the
file. If this assumption does not hold true, then the test
will eventually fail. Unfortunately, because the time offset is not detected
early, this test will have taken up a schedule slot.
There are more details on configuring the bwctld
daemon in the
bwctld.conf(5) manual page. Details on configuring the policy is in the
bwctld.limits(5) and bwctld.keys(5) manual pages. Information on the client is
in the bwctl(1) manual page. For more of an overview of the full functionality
and architecture see the http://software.internet2.edu/bwctl/ web site.
For details on Iperf3
, see the https://github.com/esnet/iperf web site.
For details on Iperf
, see the http://sourceforge.net/projects/iperf web
For details on Nuttcp
, see the
http://www.wcisd.hpc.mil/nuttcp/Nuttcp-HOWTO.html web site.
For details on Owamp
, see the http://software.internet2.edu/owamp web
This material is based in part on work supported by the National Science
Foundation (NSF) under Grant No. ANI-0314723. Any opinions, findings and
conclusions or recommendations expressed in this material are those of the
author(s) and do not necessarily reflect the views of the NSF.