libiperf - API for iperf3 network throughput tester
#include <iperf_api.h> -liperf
LIBIPERF(3) User Manuals LIBIPERF(3)
NAME
libiperf - API for iperf3 network throughput tester
SYNOPSIS
#include <iperf_api.h>
-liperf
DESCRIPTION
Libiperf gives you access to all the functionality of the iperf3 net-
work testing tool. You can build it directly into your own program,
instead of having to run it as a shell command.
CALLS
Initialization / termination:
struct iperf_test *iperf_new_test();
int iperf_defaults(struct iperf_test *t);
void iperf_free_test(struct iperf_test *t);
Setting test parameters:
void iperf_set_test_role( struct iperf_test *pt, char role );
void iperf_set_test_bind_address( struct iperf_test *t, char *bind_address );
void iperf_set_test_bind_dev( struct iperf_test *t, char *bind_dev );
void iperf_set_test_server_hostname( struct iperf_test *t, char *server_host );
void iperf_set_test_server_port( struct iperf_test *t, int server_port );
void iperf_set_test_duration( struct iperf_test *t, int duration );
void iperf_set_test_blksize( struct iperf_test *t, int blksize );
void iperf_set_test_num_streams( struct iperf_test *t, int num_streams );
void iperf_set_test_json_output( struct iperf_test *t, int json_output );
int iperf_has_zerocopy( void );
void iperf_set_test_zerocopy( struct iperf_test* t, int zerocopy );
void iperf_set_test_tos( struct iperf_test* t, int tos );
Authentication functions:
void iperf_set_test_client_username(struct iperf_test *ipt, char *client_username)
void iperf_set_test_client_password(struct iperf_test *ipt, char *client_password)
void iperf_set_test_client_rsa_pubkey(struct iperf_test *ipt, char *client_rsa_pubkey_base64)
Running a test:
int iperf_run_client(struct iperf_test *);
int iperf_run_server(struct iperf_test *);
void iperf_reset_test(struct iperf_test *);
Output:
FILE *iperf_get_test_outfile(struct iperf_test *);
char* iperf_get_test_json_output_string(struct iperf_test *);
Error reporting:
void iperf_err(struct iperf_test *t, const char *format, ...);
char *iperf_strerror(int);
extern int i_errno;
This is not a complete list of the available calls. See the include
file for more.
EXAMPLES
Here's some sample code that runs an iperf client:
struct iperf_test *test;
test = iperf_new_test();
if ( test == NULL ) {
fprintf( stderr, "%s: failed to create test0, argv0 );
exit( EXIT_FAILURE );
}
iperf_defaults( test );
iperf_set_test_role( test, 'c' );
iperf_set_test_server_hostname( test, host );
iperf_set_test_server_port( test, port );
if ( iperf_run_client( test ) < 0 ) {
fprintf( stderr, "%s: error - %s0, argv0, iperf_strerror( i_errno ) );
exit( EXIT_FAILURE );
}
iperf_free_test( test );
And here's a server:
struct iperf_test *test;
test = iperf_new_test();
if ( test == NULL ) {
fprintf( stderr, "%s: failed to create test0, argv0 );
exit( EXIT_FAILURE );
}
iperf_defaults( test );
iperf_set_test_role( test, 's' );
iperf_set_test_server_port( test, port );
for (;;) {
if ( iperf_run_server( test ) < 0 )
fprintf( stderr, "%s: error - %s0, argv0, iperf_strerror( i_errn
o ) );
iperf_reset_test( test );
}
iperf_free_test( test );
These are not complete programs, just excerpts. The full runnable
source code can be found in the examples subdirectory of the iperf3
source tree.
AUTHORS
A list of the contributors to iperf3 can be found within the documenta-
tion located at https://software.es.net/iperf/dev.html#authors.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+------------------+
|Availability | benchmark/iperf3 |
+---------------+------------------+
|Stability | Uncommitted |
+---------------+------------------+
SEE ALSO
iperf3(1), https://software.es.net/iperf/
NOTES
Source code for open source software components in Oracle Solaris can
be found at https://www.oracle.com/downloads/opensource/solaris-source-
code-downloads.html.
This software was built from source available at
https://github.com/oracle/solaris-userland. The original community
source was downloaded from https://down-
loads.es.net/pub/iperf/iperf-3.11.tar.gz.
Further information about this software can be found on the open source
community website at http://software.es.net/iperf/.
ESnet January 2022 LIBIPERF(3)