bwctld(8)
π bwctld β the Bandwidth Control server, bestie edition π
okay so real talk, this one lives in section 8 of the System Manager's Manual (that's the big-kid sysadmin section, iykyk), and it's genuinely iconic. grab a strawberry π, sit down, we're gonna go through the whole thing.
β¨ NAME β¨
bwctld β the Bandwidth Control server. that's it, that's the vibe. π
πΈ SYNOPSIS πΈ
bwctld [ -a auth_mode ] [ -c conf_dir ] [ -e facility ] [ -f ] [ -G group ] [ -h ] [ -R var_dir ] [ -S nodename:port ] [ -U user ] [ -v ] [ -Z ]
π¦ DESCRIPTION π¦
so bwctld is a server program, and its whole job is scheduling and running tests. which tests, you ask? literally all of these: Iperf, Thrulay or Nuttcp, Ping, Traceroute, Tracepath, and Owamp. like, the entire measurement friend group. π
and honestly? running the tests is only, like, half the story. the main function of bwctld is deciding which tests are even allowable, based on the policy restrictions that the system administrator configured. it's giving bouncer at the club, but for network measurements. π«β¨
bwctld was designed to be run as a stand-alone daemon process. it uses the classic accept/fork model for handling new requests. no cap, that's the architecture. π§
and here's the thing you actually need to remember: most of the command line options for bwctld have analogous options in the bwctld.conf file. and when they disagree? the command line takes precedence. periodt. π
π OPTIONS π
-a auth_modeβ pick the authentication modes the server is willing to use for communication.auth_modegets set as a character string containing any or all of the characters"AEO". here's the decoder ring:Aβ [A]uthenticated. this mode encrypts the control connection. πEβ [E]ncrypted. this mode encrypts the control connection too. and if the test supports encryption, this mode will additionally encrypt the test stream. β οΈ heads up though: encryption of the test stream is not currently supported, so this mode is currently identical to authenticated. so like,Eis lowkey justAin a cuter outfit rn. πOβ [O]pen. no encryption of any kind is done. it's giving exposed. π
the server can specify all the modes with which it is willing to communicate. then the most strict mode that both the server and the client are willing to use gets selected. compromise, but make it secure. π«Ά
Default: "AEO".
-c conf_dirβ specify the directory that holds thebwctldconfiguration files. π
Default: the current working directory.
-e facilityβ the syslog facility to which messages are logged. π
Default: LOG_DAEMON
-fβ this lets thebwctlddaemon run with root permissions. and bestie, there are legitimate reasons to runbwctldas root, but it is risky. forcing this extra option just makes it less likely that root permissions get used accidentally. it's a seatbelt, not a personality. ππ-G groupβ specify thegidfor thebwctldprocess.groupcan be given as a valid group name, or by using-gid. β οΈ this option is only used ifbwctldis started as root.-hβ print a help message. your fave, honestly. π-R var_dirβ specify the directory to hold thebwctld.pidfile. ποΈ
Default: the current directory.
-S nodename:portβ specify the address and port on whichbwctldwill listen for requests.nodenamecan be given as a DNS name or as the textual representation of the address. and get this β you can set the source address without setting the port, simply by leaving off the':'and the port specification. π―
if you're specifying an IPv6 address, note that the accepted format containsnodenamein square brackets, like this:[fe80::fe9f:62d8]. that's what keeps the port number distinct from the address specification. brackets are the moment. π
Default: nodename is wildcarded as any currently available address. port is 4823.
-U userβ specify theuidfor thebwctldprocess.usercan be given as a valid user name, or by using-uid. β οΈ this option is only used ifbwctldis started as root.-vβ set verbose output. β οΈ messages will only go to syslog unless the-Zoption is also specified. no-Z, no terminal tea. β-Zβ run the masterbwctldprocess in the foreground. in this mode, error messages are printed tostderras well as being sent to syslog. plus, normal terminal controls are available β i.e.,<Cntr-C>will cause the daemon to kill its child processes and exit. this one is useful for debugging. ππ
β° REQUIREMENTS β°
the bwctld daemon prefers a reasonably synchronized clock. it's out here scheduling tests, and it needs to be sure it has the same idea of when a test should take place as the peer test system does. like, you can't show up to brunch at a different time than your bestie and expect it to work. π
so, bwctld attempts to use NTP specific system calls to determine the accuracy of the local clock. π°οΈ
but if those system calls are unavailable, or the administrator has set the allow_unsync option in the bwctld.conf file, then bwctld will blindly accept tests, assuming the clock is synchronized to within the sync_fuzz value β which is also defined in the bwctld.conf file.
β οΈ and if that assumption does not hold true? the test will eventually fail. and the truly painful part: because the time offset isn't detected early, this test will have taken up a schedule slot. wasted slot. tragic. π
π FILES π
bwctld.pidbwctld.confbwctld.limitsbwctld.keys
π SEE ALSO π
there are more details on configuring the bwctld daemon in the bwctld.conf(5) manual page. β¨
details on configuring the policy live in the bwctld.limits(5) and bwctld.keys(5) manual pages. π
info on the client is in the bwctl(1) manual page. π«Ά
and 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/iperfweb site. - for details on Iperf, see the
http://sourceforge.net/projects/iperfweb site. - for details on Nuttcp, see the
http://www.wcisd.hpc.mil/nuttcp/Nuttcp-HOWTO.htmlweb site. - for details on Owamp, see the
http://software.internet2.edu/owampweb site.
π ACKNOWLEDGMENTS π
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. (standard disclaimer, but we respect it. π«‘)
okay that's the whole page, bestie!! π¦β¨ this one's stamped with $Date$ and it belongs to the bwctld(8) manual, so if you ever forget any of it, just man 8 bwctld and it'll all come running back. slay, stay synchronized, and don't run as root unless you meant to. πππ
π¦ where this page comes from
- ubuntu jammy: bwctl-server 1.5.4+dfsg1-1build1 Β· Apache-2.0
- Copyright (C) 2004 #
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms