Diff for /embedaddon/iperf/src/iperf3.1 between versions 1.1.1.2 and 1.1.1.3

version 1.1.1.2, 2021/03/17 00:36:46 version 1.1.1.3, 2023/09/27 11:14:54
Line 1 Line 1
.TH IPERF3 1 "July 2020" ESnet "User Manuals".TH IPERF3 1 "September 2022" ESnet "User Manuals"
 .SH NAME  .SH NAME
 iperf3 \- perform network throughput tests  iperf3 \- perform network throughput tests
 .SH SYNOPSIS  .SH SYNOPSIS
Line 6  iperf3 \- perform network throughput tests Line 6  iperf3 \- perform network throughput tests
 .I options  .I options
 .B ]  .B ]
 .br  .br
.B iperf3 -c .B iperf3 -c
 .I server  .I server
 .B [  .B [
 .I options  .I options
Line 96  test by specifying the --get-server-output flag. Line 96  test by specifying the --get-server-output flag.
 Either the client or the server can produce its output in a JSON  Either the client or the server can produce its output in a JSON
 structure, useful for integration with other programs, by passing it  structure, useful for integration with other programs, by passing it
 the -J flag.  the -J flag.
Because the contents of the JSON structure are only competely knownBecause the contents of the JSON structure are only completely known
 after the test has finished, no JSON output will be emitted until the  after the test has finished, no JSON output will be emitted until the
 end of the test.  end of the test.
 .PP  .PP
Line 117  set server port to listen on/connect to to \fIn\fR (de Line 117  set server port to listen on/connect to to \fIn\fR (de
 pause \fIn\fR seconds between periodic throughput reports;  pause \fIn\fR seconds between periodic throughput reports;
 default is 1, use 0 to disable  default is 1, use 0 to disable
 .TP  .TP
   .BR -I ", " --pidfile " \fIfile\fR"
   write a file with the process ID, most useful when running as a daemon.
   .TP
 .BR -F ", " --file " \fIname\fR"  .BR -F ", " --file " \fIname\fR"
 Use a file as the source (on the sender) or sink (on the receiver) of  Use a file as the source (on the sender) or sink (on the receiver) of
 data, rather than just generating random data or throwing it away.  data, rather than just generating random data or throwing it away.
Line 134  In addition, on the client side you can override the s Line 137  In addition, on the client side you can override the s
 affinity for just that one test, using the \fIn,m\fR form of  affinity for just that one test, using the \fIn,m\fR form of
 argument.  argument.
 Note that when using this feature, a process will only be bound  Note that when using this feature, a process will only be bound
to a single CPU (as opposed to a set containing potentialy multipleto a single CPU (as opposed to a set containing potentially multiple
 CPUs).  CPUs).
 .TP  .TP
.BR -B ", " --bind " \fIhost\fR".BR -B ", " --bind " \fIhost\fR[\fB%\fIdev\fR]"
 bind to the specific interface associated with address \fIhost\fR.  bind to the specific interface associated with address \fIhost\fR.
   If an optional interface is specified, it is treated as a shortcut
   for \fB--bind-dev \fIdev\fR.
   Note that a percent sign and interface device name are required for IPv6 link-local address literals.
 .TP  .TP
   .BR --bind-dev " \fIdev\fR"
   bind to the specified network interface.
   This option uses SO_BINDTODEVICE, and may require root permissions.
   (Available on Linux and possibly other systems.)
   .TP
 .BR -V ", " --verbose " "  .BR -V ", " --verbose " "
give more detailed output give more detailed output
 .TP  .TP
 .BR -J ", " --json " "  .BR -J ", " --json " "
 output in JSON format  output in JSON format
Line 153  send output to a log file. Line 164  send output to a log file.
 force flushing output at every interval.  force flushing output at every interval.
 Used to avoid buffering when sending output to pipe.  Used to avoid buffering when sending output to pipe.
 .TP  .TP
.BR --timestamps " [\fIformat\fR]".BR --timestamps "[\fB=\fIformat\fR]"
 prepend a timestamp at the start of each output line.  prepend a timestamp at the start of each output line.
 By default, timestamps have the format emitted by  By default, timestamps have the format emitted by
 .BR ctime ( 1 ).  .BR ctime ( 1 ).
Optionally, a format specification can be passed to customize theOptionally, \fC=\fR followed by
 a format specification can be passed to customize the
 timestamps, see  timestamps, see
 .BR strftime ( 3 ).  .BR strftime ( 3 ).
   If this optional format is given, the \fC=\fR must immediately
   follow the \fB--timestamps\fR option with no whitespace intervening.
 .TP  .TP
   .BR --rcv-timeout " \fI#\fR"
   set idle timeout for receiving data during active tests. The receiver
   will halt a test if no data is received from the sender for this
   number of ms (default to 12000 ms, or 2 minutes).
   .TP
   .BR --snd-timeout " \fI#\fR"
   set timeout for unacknowledged TCP data (on both test and control
   connections) This option can be used to force a faster test timeout
   in case of a network partition during a test. The required
   parameter is specified in ms, and defaults to the system settings.
   This functionality depends on the TCP_USER_TIMEOUT socket option, and
   will not work on systems that do not support it.
   .TP
 .BR -d ", " --debug " "  .BR -d ", " --debug " "
 emit debugging output.  emit debugging output.
 Primarily (perhaps exclusively) of use to developers.  Primarily (perhaps exclusively) of use to developers.
Line 179  run in server mode Line 206  run in server mode
 .BR -D ", " --daemon " "  .BR -D ", " --daemon " "
 run the server in background as a daemon  run the server in background as a daemon
 .TP  .TP
 .BR -I ", " --pidfile " \fIfile\fR"  
 write a file with the process ID, most useful when running as a daemon.  
 .TP  
 .BR -1 ", " --one-off  .BR -1 ", " --one-off
handle one client connection, then exit.handle one client connection, then exit.  If an idle time is set, the
 server will exit after that amount of time with no connection.
 .TP  .TP
   .BR --idle-timeout " \fIn\fR"
   restart the server after \fIn\fR seconds in case it gets stuck.  In
   one-off mode, this is the number of seconds the server will wait
   before exiting.
   .TP
 .BR --server-bitrate-limit " \fIn\fR[KMGT]"  .BR --server-bitrate-limit " \fIn\fR[KMGT]"
 set a limit on the server side, which will cause a test to abort if  set a limit on the server side, which will cause a test to abort if
 the client specifies a test of more than \fIn\fR bits per second, or  the client specifies a test of more than \fIn\fR bits per second, or
Line 195  the data rate is 5 seconds by default, but can be spec Line 225  the data rate is 5 seconds by default, but can be spec
 a '/' and a number to the bitrate specifier.  a '/' and a number to the bitrate specifier.
 .TP  .TP
 .BR --rsa-private-key-path " \fIfile\fR"  .BR --rsa-private-key-path " \fIfile\fR"
path to the RSA private key (not password-protected) used to decrypt path to the RSA private key (not password-protected) used to decrypt
 authentication credentials from the client (if built with OpenSSL  authentication credentials from the client (if built with OpenSSL
 support).  support).
.TP          .TP
 .BR --authorized-users-path " \fIfile\fR"  .BR --authorized-users-path " \fIfile\fR"
path to the configuration file containing authorized users credentials to run path to the configuration file containing authorized users credentials to run
 iperf tests (if built with OpenSSL support).  iperf tests (if built with OpenSSL support).
 The file is a comma separated list of usernames and password hashes;  The file is a comma separated list of usernames and password hashes;
 more information on the structure of the file can be found in the  more information on the structure of the file can be found in the
 EXAMPLES section.  EXAMPLES section.
   .TP
   .BR --time-skew-threshold second " \fIseconds\fR"
   time skew threshold (in seconds) between the server and client
   during the authentication process.
 .SH "CLIENT SPECIFIC OPTIONS"  .SH "CLIENT SPECIFIC OPTIONS"
 .TP  .TP
.BR -c ", " --client " \fIhost\fR".BR -c ", " --client " \fIhost\fR[\fB%\fIdev\fR]"
 run in client mode, connecting to the specified server.  run in client mode, connecting to the specified server.
 By default, a test consists of sending data from the client to the  By default, a test consists of sending data from the client to the
 server, unless the \-R flag is specified.  server, unless the \-R flag is specified.
   If an optional interface is specified, it is treated as a shortcut
   for \fB--bind-dev \fIdev\fR.
   Note that a percent sign and interface device name are required for IPv6 link-local address literals.
 .TP  .TP
 .BR --sctp  .BR --sctp
 use SCTP rather than TCP (FreeBSD and Linux)  use SCTP rather than TCP (FreeBSD and Linux)
Line 300  test in both directions (normal and reverse), with bot Line 337  test in both directions (normal and reverse), with bot
 server sending and receiving data simultaneously  server sending and receiving data simultaneously
 .TP  .TP
 .BR -w ", " --window " \fIn\fR[KMGT]"  .BR -w ", " --window " \fIn\fR[KMGT]"
window size / socket buffer size (this gets sent to the server and used on that side too)set socket buffer size / window size.
 This value gets sent to the server and used on that side too; on both
 sides this option sets both the sending and receiving socket buffer sizes.
 This option can be used to set (indirectly) the maximum TCP window size.
 Note that on Linux systems, the effective maximum window size is approximately
 double what is specified by this option (this behavior is not a bug in iperf3
 but a "feature" of the Linux kernel, as documented by tcp(7) and socket(7)).
 .TP  .TP
 .BR -M ", " --set-mss " \fIn\fR"  .BR -M ", " --set-mss " \fIn\fR"
 set TCP/SCTP maximum segment size (MTU - 40 bytes)  set TCP/SCTP maximum segment size (MTU - 40 bytes)
Line 348  Use a "zero copy" method of sending data, such as send Line 391  Use a "zero copy" method of sending data, such as send
 instead of the usual write(2).  instead of the usual write(2).
 .TP  .TP
 .BR -O ", " --omit " \fIn\fR"  .BR -O ", " --omit " \fIn\fR"
Omit the first n seconds of the test, to skip past the TCP slow-startPerform pre-test for N seconds and omit the pre-test statistics, to skip past the TCP slow-start
 period.  period.
 .TP  .TP
 .BR -T ", " --title " \fIstr\fR"  .BR -T ", " --title " \fIstr\fR"
Line 386  It might help to test and reveal problems in networkin Line 429  It might help to test and reveal problems in networkin
 compression (including some WiFi access points), where iperf2 and iperf3  compression (including some WiFi access points), where iperf2 and iperf3
 perform differently, just based on payload entropy.  perform differently, just based on payload entropy.
 .TP  .TP
.BR --username " \fIusername\fR" .BR --dont-fragment
 Set the IPv4 Don't Fragment (DF) bit on outgoing packets.
 Only applicable to tests doing UDP over IPv4.
 .TP
 .BR --username " \fIusername\fR"
 username to use for authentication to the iperf server (if built with  username to use for authentication to the iperf server (if built with
 OpenSSL support).  OpenSSL support).
 The password will be prompted for interactively when the test is run.  Note,  The password will be prompted for interactively when the test is run.  Note,
 the password to use can also be specified via the IPERF3_PASSWORD environment  the password to use can also be specified via the IPERF3_PASSWORD environment
 variable. If this variable is present, the password prompt will be skipped.  variable. If this variable is present, the password prompt will be skipped.
 .TP  .TP
.BR --rsa-public-key-path " \fIfile\fR" .BR --rsa-public-key-path " \fIfile\fR"
 path to the RSA public key used to encrypt authentication credentials  path to the RSA public key used to encrypt authentication credentials
 (if built with OpenSSL support)  (if built with OpenSSL support)
   
 .SH EXAMPLES  .SH EXAMPLES
 .SS "Authentication - RSA Keypair"  .SS "Authentication - RSA Keypair"
 The authentication feature of iperf3 requires an RSA public keypair.  The authentication feature of iperf3 requires an RSA public keypair.
The public key is used to encrypt the authentication token containing the The public key is used to encrypt the authentication token containing the
 user credentials, while the private key is used to decrypt the authentication token.  user credentials, while the private key is used to decrypt the authentication token.
An example of a set of UNIX/Linux commands to generate correct keypair follows:The private key must be in PEM format and additionally must not have a
.sp 1 password set.
 The public key must be in PEM format and use SubjectPrefixKeyInfo encoding.
 An example of a set of UNIX/Linux commands using OpenSSL
 to generate a correctly-formed keypair follows:
 .sp 1
 .in +.5i  .in +.5i
 > openssl genrsa -des3 -out private.pem 2048  > openssl genrsa -des3 -out private.pem 2048
 .sp 0  .sp 0
 > openssl rsa -in private.pem -outform PEM -pubout -out public.pem  > openssl rsa -in private.pem -outform PEM -pubout -out public.pem
 .sp 0  .sp 0
> openssl rsa -in private.pem -out private_not_protected.pem -outform PEM  > openssl rsa -in private.pem -out private_not_protected.pem -outform PEM
 .in -.5i  .in -.5i
 .sp 1  .sp 1
 After these commands, the public key will be contained in the file  After these commands, the public key will be contained in the file
 public.pem and the private key will be contained in the file  public.pem and the private key will be contained in the file
 private_not_protected.pem.  private_not_protected.pem.
 .SS "Authentication - Authorized users configuration file"  .SS "Authentication - Authorized users configuration file"
A simple plaintext file must be provided to the iperf3 server in order to specify A simple plaintext file must be provided to the iperf3 server in order to specify
 the authorized user credentials.  the authorized user credentials.
 The file is a simple list of comma-separated pairs of a username and a  The file is a simple list of comma-separated pairs of a username and a
 corresponding password hash.  corresponding password hash.
Line 425  The file can also contain commented lines (starting wi Line 476  The file can also contain commented lines (starting wi
 character).  character).
 An example of commands to generate the password hash on a UNIX/Linux system  An example of commands to generate the password hash on a UNIX/Linux system
 is given below:  is given below:
.sp 1 .sp 1
 .in +.5i  .in +.5i
 > S_USER=mario S_PASSWD=rossi  > S_USER=mario S_PASSWD=rossi
 .sp 0  .sp 0

Removed from v.1.1.1.2  
changed lines
  Added in v.1.1.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>