• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /*
2          Copyright (C) 1993-2003 Hewlett-Packard Company
3  */
4  
5   /* This file contains the test-specific definitions for netperf's BSD */
6   /* sockets tests */
7  
8  
9  struct	sctp_stream_request_struct {
10    int	send_buf_size;
11    int	recv_buf_size;	/* how big does the client want it - the */
12  			/* receive socket buffer that is */
13    int	receive_size;   /* how many bytes do we want to receive at one */
14  			/* time? */
15    int	recv_alignment; /* what is the alignment of the receive */
16  			/* buffer? */
17    int	recv_offset;    /* and at what offset from that alignment? */
18    int	no_delay;       /* do we disable the nagle algorithm for send */
19  			/* coalescing? */
20    int	measure_cpu;	/* does the client want server cpu utilization */
21  			/* measured? */
22    float	cpu_rate;	/* do we know how fast the cpu is already? */
23    int	test_length;	/* how long is the test?		*/
24    int	so_rcvavoid;    /* do we want the remote to avoid copies on */
25  			/* receives? */
26    int	so_sndavoid;    /* do we want the remote to avoid send copies? */
27    int   dirty_count;    /* how many integers in the receive buffer */
28  			/* should be made dirty before calling recv? */
29    int   clean_count;    /* how many integers should be read from the */
30  			/* recv buffer before calling recv? */
31    int   port;		/* the to port to which recv side should bind
32  			   to allow netperf to run through firewalls */
33    int   ipfamily;	/* address family of ipaddress */
34    int   non_blocking;   /* run the test in non-blocking mode */
35  };
36  
37  struct	sctp_stream_response_struct {
38    int	recv_buf_size;	/* how big does the client want it	*/
39    int	receive_size;
40    int	no_delay;
41    int	measure_cpu;	/* does the client want server cpu	*/
42    int	test_length;	/* how long is the test?		*/
43    int	send_buf_size;
44    int	data_port_number;	/* connect to me here	*/
45    float	cpu_rate;		/* could we measure	*/
46    int	so_rcvavoid;	/* could the remote avoid receive copies? */
47    int	so_sndavoid;	/* could the remote avoid send copies? */
48    int   non_blocking;   /* run the test in non-blocking mode */
49  };
50  
51  struct sctp_stream_results_struct {
52    double         bytes_received;
53    unsigned int	 recv_calls;
54    float	         elapsed_time;	/* how long the test ran */
55    float	         cpu_util;	/* -1 if not measured */
56    float	         serv_dem;	/* -1 if not measured */
57    int            cpu_method;    /* how was cpu util measured? */
58    int            num_cpus;      /* how many CPUs had the remote? */
59  };
60  
61  struct	sctp_rr_request_struct {
62    int	recv_buf_size;	/* how big does the client want it	*/
63    int	send_buf_size;
64    int	recv_alignment;
65    int	recv_offset;
66    int	send_alignment;
67    int	send_offset;
68    int	request_size;
69    int	response_size;
70    int	no_delay;
71    int	measure_cpu;	/* does the client want server cpu	*/
72    float	cpu_rate;	/* do we know how fast the cpu is?	*/
73    int	test_length;	/* how long is the test?		*/
74    int	so_rcvavoid;    /* do we want the remote to avoid receive */
75  			/* copies? */
76    int	so_sndavoid;    /* do we want the remote to avoid send copies? */
77    int   port;		/* the to port to which recv side should bind
78  			   to allow netperf to run through firewalls */
79    int   ipfamily;	/* address family of ipaddress */
80    int   non_blocking;   /* run the test in non-blocking mode */
81  };
82  
83  struct	sctp_rr_response_struct {
84    int	recv_buf_size;	/* how big does the client want it	*/
85    int	no_delay;
86    int	measure_cpu;	/* does the client want server cpu	*/
87    int	test_length;	/* how long is the test?		*/
88    int	send_buf_size;
89    int	data_port_number;	/* connect to me here	*/
90    float	cpu_rate;		/* could we measure	*/
91    int	so_rcvavoid;	/* could the remote avoid receive copies? */
92    int	so_sndavoid;	/* could the remote avoid send copies? */
93    int   non_blocking;   /* run the test in non-blocking mode */
94  };
95  
96  struct sctp_rr_results_struct {
97    unsigned int  bytes_received;	/* ignored initially */
98    unsigned int	recv_calls;	/* ignored initially */
99    unsigned int	trans_received;	/* not ignored  */
100    float	        elapsed_time;	/* how long the test ran */
101    float	        cpu_util;	/* -1 if not measured */
102    float	        serv_dem;	/* -1 if not measured */
103    int           cpu_method;    /* how was cpu util measured? */
104    int           num_cpus;      /* how many CPUs had the remote? */
105  };
106  
107  #define SCTP_SNDRCV_INFO_EV		0x01
108  #define SCTP_ASSOC_CHANGE_EV		0x02
109  #define SCTP_PEERADDR_CHANGE_EV		0x04
110  #define SCTP_SND_FAILED_EV		0x08
111  #define SCTP_REMOTE_ERROR_EV		0x10
112  #define SCTP_SHUTDOWN_EV		0x20
113  #define SCTP_PD_EV			0x40
114  #define SCTP_ADAPT_EV			0x80
115  
116  typedef enum sctp_disposition {
117      SCTP_OK = 1,
118      SCTP_CLOSE,
119  } sctp_disposition_t;
120  
121  extern void scan_sctp_args( int argc, char *argv[] );
122  
123  extern void send_sctp_stream( char remote_host[] );
124  extern void send_sctp_stream_1toMany( char remote_host[] );
125  extern void send_sctp_rr( char remote_host[] );
126  extern void send_sctp_rr_1toMany( char remote_host[] );
127  
128  extern void recv_sctp_stream( void );
129  extern void recv_sctp_stream_1toMany( void );
130  extern void recv_sctp_rr( void );
131  extern void recv_sctp_rr_1toMany( void );
132  
133  extern void loc_cpu_rate();
134  extern void rem_cpu_rate();
135