102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project/*
202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project        Copyright (C) 2007 Hewlett-Packard Company
302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project*/
402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project
502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project /* This file contains the test-specific definitions for netperf's SDP */
602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project /* sockets tests */
702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project
802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project/* one of these days, this should not be required */
902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project#ifndef AF_INET_SDP
1002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project#define AF_INET_SDP 27
1102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project#define PF_INET_SDP AF_INET_SDP
1202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project#endif
1302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project
1402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectstruct	sdp_stream_request_struct {
1502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	send_buf_size;
1602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	recv_buf_size;	/* how big does the client want it - the */
1702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* receive socket buffer that is */
1802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	receive_size;   /* how many bytes do we want to receive at one */
1902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* time? */
2002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	recv_alignment; /* what is the alignment of the receive */
2102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* buffer? */
2202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	recv_offset;    /* and at what offset from that alignment? */
2302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	no_delay;       /* do we disable the nagle algorithm for send */
2402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* coalescing? */
2502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	measure_cpu;	/* does the client want server cpu utilization */
2602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* measured? */
2702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  float	cpu_rate;	/* do we know how fast the cpu is already? */
2802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	test_length;	/* how long is the test?		*/
2902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	so_rcvavoid;    /* do we want the remote to avoid copies on */
3002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* receives? */
3102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	so_sndavoid;    /* do we want the remote to avoid send copies? */
3202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int   dirty_count;    /* how many integers in the receive buffer */
3302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* should be made dirty before calling recv? */
3402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int   clean_count;    /* how many integers should be read from the */
3502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* recv buffer before calling recv? */
3602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int   port;		/* the to port to which recv side should bind
3702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			   to allow netperf to run through firewalls */
3802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int   ipfamily;	/* address family of ipaddress */
3902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int   non_blocking;   /* run the test in non-blocking mode */
4002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project};
4102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project
4202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectstruct	sdp_stream_response_struct {
4302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	recv_buf_size;	/* how big does the client want it	*/
4402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	receive_size;
4502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	no_delay;
4602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	measure_cpu;	/* does the client want server cpu	*/
4702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	test_length;	/* how long is the test?		*/
4802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	send_buf_size;
4902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	data_port_number;	/* connect to me here	*/
5002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  float	cpu_rate;		/* could we measure	*/
5102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	so_rcvavoid;	/* could the remote avoid receive copies? */
5202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	so_sndavoid;	/* could the remote avoid send copies? */
5302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int   non_blocking;   /* run the test in non-blocking mode */
5402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project};
5502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project
5602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectstruct sdp_stream_results_struct {
5702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  double         bytes_received;
5802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  unsigned int	 recv_calls;
5902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  float	         elapsed_time;	/* how long the test ran */
6002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  float	         cpu_util;	/* -1 if not measured */
6102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  float	         serv_dem;	/* -1 if not measured */
6202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int            cpu_method;    /* how was cpu util measured? */
6302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int            num_cpus;      /* how many CPUs had the remote? */
6402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project};
6502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project
6602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectstruct	sdp_rr_request_struct {
6702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	recv_buf_size;	/* how big does the client want it	*/
6802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	send_buf_size;
6902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	recv_alignment;
7002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	recv_offset;
7102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	send_alignment;
7202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	send_offset;
7302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	request_size;
7402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	response_size;
7502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	no_delay;
7602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	measure_cpu;	/* does the client want server cpu	*/
7702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  float	cpu_rate;	/* do we know how fast the cpu is?	*/
7802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	test_length;	/* how long is the test?		*/
7902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	so_rcvavoid;    /* do we want the remote to avoid receive */
8002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* copies? */
8102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	so_sndavoid;    /* do we want the remote to avoid send copies? */
8202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int   port;		/* the to port to which recv side should bind
8302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			   to allow netperf to run through firewalls */
8402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int   ipfamily;	/* address family of ipaddress */
8502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int   non_blocking;   /* run the test in non-blocking mode */
8602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project};
8702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project
8802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectstruct	sdp_rr_response_struct {
8902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	recv_buf_size;	/* how big does the client want it	*/
9002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	no_delay;
9102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	measure_cpu;	/* does the client want server cpu	*/
9202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	test_length;	/* how long is the test?		*/
9302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	send_buf_size;
9402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	data_port_number;	/* connect to me here	*/
9502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  float	cpu_rate;		/* could we measure	*/
9602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	so_rcvavoid;	/* could the remote avoid receive copies? */
9702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	so_sndavoid;	/* could the remote avoid send copies? */
9802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int   non_blocking;   /* run the test in non-blocking mode */
9902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project};
10002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project
10102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectstruct sdp_rr_results_struct {
10202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  unsigned int  bytes_received;	/* ignored initially */
10302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  unsigned int	recv_calls;	/* ignored initially */
10402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  unsigned int	trans_received;	/* not ignored  */
10502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  float	        elapsed_time;	/* how long the test ran */
10602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  float	        cpu_util;	/* -1 if not measured */
10702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  float	        serv_dem;	/* -1 if not measured */
10802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int           cpu_method;    /* how was cpu util measured? */
10902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int           num_cpus;      /* how many CPUs had the remote? */
11002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project};
11102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project
11202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectstruct	sdp_maerts_request_struct {
11302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	send_buf_size;
11402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	recv_buf_size;	/* how big does the client want it - the */
11502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* receive socket buffer that is */
11602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	send_size;      /* how many bytes do we want netserver to send
11702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			   at one time? */
11802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	send_alignment; /* what is the alignment of the send */
11902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* buffer? */
12002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	send_offset;    /* and at what offset from that alignment? */
12102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	no_delay;       /* do we disable the nagle algorithm for send */
12202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* coalescing? */
12302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	measure_cpu;	/* does the client want server cpu utilization */
12402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* measured? */
12502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  float	cpu_rate;	/* do we know how fast the cpu is already? */
12602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	test_length;	/* how long is the test?		*/
12702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	so_rcvavoid;    /* do we want the remote to avoid copies on */
12802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* receives? */
12902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	so_sndavoid;    /* do we want the remote to avoid send copies? */
13002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int   dirty_count;    /* how many integers in the send buffer */
13102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* should be made dirty before calling recv? */
13202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int   clean_count;    /* how many integers should be read from the */
13302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			/* recv buffer before calling recv? */
13402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int   port;           /* the port to which the recv side should bind
13502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			   to allow netperf to run through those evil
13602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project			   firewall things */
13702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int   ipfamily;
13802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project};
13902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project
14002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectstruct	sdp_maerts_response_struct {
14102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	recv_buf_size;	/* how big does the client want it	*/
14202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	send_size;
14302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	no_delay;
14402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	measure_cpu;	/* does the client want server cpu	*/
14502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	test_length;	/* how long is the test?		*/
14602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	send_buf_size;
14702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	data_port_number;	/* connect to me here	*/
14802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  float	cpu_rate;		/* could we measure	*/
14902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	so_rcvavoid;	/* could the remote avoid receive copies? */
15002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int	so_sndavoid;	/* could the remote avoid send copies? */
15102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project};
15202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project
15302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectstruct sdp_maerts_results_struct {
15402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  double         bytes_sent;
15502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  unsigned int	 send_calls;
15602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  float	         elapsed_time;	/* how long the test ran */
15702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  float	         cpu_util;	/* -1 if not measured */
15802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  float	         serv_dem;	/* -1 if not measured */
15902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int            cpu_method;    /* how was cpu util measured? */
16002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project  int            num_cpus;      /* how many CPUs had the remote? */
16102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project};
16202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project
16302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectextern void send_sdp_stream();
16402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectextern void send_sdp_rr();
16502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project
16602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectextern void recv_sdp_stream();
16702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectextern void recv_sdp_rr();
16802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project
16902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectextern void loc_cpu_rate();
17002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectextern void rem_cpu_rate();
171