114 строки
3.6 KiB
Groff
114 строки
3.6 KiB
Groff
.TH LIBIPERF 3 "June 2018" ESnet "User Manuals"
|
|
.SH NAME
|
|
libiperf \- API for iperf3 network throughput tester
|
|
|
|
.SH SYNOPSIS
|
|
#include <iperf_api.h>
|
|
.br
|
|
\-liperf
|
|
|
|
.SH DESCRIPTION
|
|
.PP
|
|
Libiperf gives you access to all the functionality of the iperf3
|
|
network testing tool.
|
|
You can build it directly into your own program, instead of having
|
|
to run it as a shell command.
|
|
|
|
.SH CALLS
|
|
Initialization / termination:
|
|
.nf
|
|
struct iperf_test *iperf_new_test();
|
|
int iperf_defaults(struct iperf_test *t);
|
|
void iperf_free_test(struct iperf_test *t);
|
|
.fi
|
|
Setting test parameters:
|
|
.nf
|
|
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_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 );
|
|
.fi
|
|
Authentication functions:
|
|
.nf
|
|
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)
|
|
.fi
|
|
Running a test:
|
|
.nf
|
|
int iperf_run_client(struct iperf_test *);
|
|
int iperf_run_server(struct iperf_test *);
|
|
void iperf_reset_test(struct iperf_test *);
|
|
.fi
|
|
Output:
|
|
.nf
|
|
FILE *iperf_get_test_outfile(struct iperf_test *);
|
|
char* iperf_get_test_json_output_string(struct iperf_test *);
|
|
.fi
|
|
Error reporting:
|
|
.nf
|
|
void iperf_err(struct iperf_test *t, const char *format, ...);
|
|
char *iperf_strerror(int);
|
|
extern int i_errno;
|
|
.fi
|
|
This is not a complete list of the available calls.
|
|
See the include file for more.
|
|
|
|
.SH EXAMPLES
|
|
Here's some sample code that runs an iperf client:
|
|
.nf
|
|
struct iperf_test *test;
|
|
test = iperf_new_test();
|
|
if ( test == NULL ) {
|
|
fprintf( stderr, "%s: failed to create test\n", 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 - %s\n", argv0, iperf_strerror( i_errno ) );
|
|
exit( EXIT_FAILURE );
|
|
}
|
|
iperf_free_test( test );
|
|
.fi
|
|
And here's a server:
|
|
.nf
|
|
struct iperf_test *test;
|
|
test = iperf_new_test();
|
|
if ( test == NULL ) {
|
|
fprintf( stderr, "%s: failed to create test\n", 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 - %s\n\n", argv0, iperf_strerror( i_errn
|
|
o ) );
|
|
iperf_reset_test( test );
|
|
}
|
|
iperf_free_test( test );
|
|
.fi
|
|
These are not complete programs, just excerpts.
|
|
The full runnable source code can be found in the examples subdirectory
|
|
of the iperf3 source tree.
|
|
|
|
.SH AUTHORS
|
|
A list of the contributors to iperf3 can be found within the
|
|
documentation located at
|
|
\fChttps://software.es.net/iperf/dev.html#authors\fR.
|
|
|
|
.SH "SEE ALSO"
|
|
iperf3(1),
|
|
https://software.es.net/iperf/
|