Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 );
	   void	iperf_set_test_json_stream( struct iperf_test *t, int json_stream );
	   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.

SEE ALSO
       iperf3(1), https://software.es.net/iperf/

ESnet				 January 2022			   LIBIPERF(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=libiperf&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help