1 /* 2 * Copyright (C) 1995,2004 Hewlett-Packard Company 3 */ 4 5 /* This file contains the test-specific definitions for netperf's BSD */ 6 /* sockets tests */ 7 8 struct xti_tcp_stream_request_struct { 9 int send_buf_size; 10 int recv_buf_size; /* how big does the client want it - the */ 11 /* receive socket buffer that is */ 12 int receive_size; /* how many bytes do we want to receive at one */ 13 /* time? */ 14 int recv_alignment; /* what is the alignment of the receive */ 15 /* buffer? */ 16 int recv_offset; /* and at what offset from that alignment? */ 17 int no_delay; /* do we disable the nagle algorithm for send */ 18 /* coalescing? */ 19 int measure_cpu; /* does the client want server cpu utilization */ 20 /* measured? */ 21 float cpu_rate; /* do we know how fast the cpu is already? */ 22 int test_length; /* how long is the test? */ 23 int so_rcvavoid; /* do we want the remote to avoid copies on */ 24 /* receives? */ 25 int so_sndavoid; /* do we want the remote to avoid send copies? */ 26 int dirty_count; /* how many integers in the receive buffer */ 27 /* should be made dirty before calling recv? */ 28 int clean_count; /* how many integers should be read from the */ 29 /* recv buffer before calling recv? */ 30 int dev_name_len; /* the length of the device name string. this */ 31 /* is used to put it into the proper order on */ 32 /* @#$% byte-swapped boxes... */ 33 char xti_device[32]; /* the path to the dlpi device */ 34 }; 35 36 struct xti_tcp_stream_response_struct { 37 int recv_buf_size; /* how big does the client want it */ 38 int receive_size; 39 int no_delay; 40 int measure_cpu; /* does the client want server cpu */ 41 int test_length; /* how long is the test? */ 42 int send_buf_size; 43 int data_port_number; /* connect to me here */ 44 float cpu_rate; /* could we measure */ 45 int so_rcvavoid; /* could the remote avoid receive copies? */ 46 int so_sndavoid; /* could the remote avoid send copies? */ 47 }; 48 49 struct xti_tcp_stream_results_struct { 50 double bytes_received; 51 unsigned int recv_calls; 52 float elapsed_time; /* how long the test ran */ 53 float cpu_util; /* -1 if not measured */ 54 float serv_dem; /* -1 if not measured */ 55 int cpu_method; /* how was cpu util measured? */ 56 int num_cpus; /* how many CPUs were there */ 57 }; 58 59 struct xti_tcp_rr_request_struct { 60 int recv_buf_size; /* how big does the client want it */ 61 int send_buf_size; 62 int recv_alignment; 63 int recv_offset; 64 int send_alignment; 65 int send_offset; 66 int request_size; 67 int response_size; 68 int no_delay; 69 int measure_cpu; /* does the client want server cpu */ 70 float cpu_rate; /* do we know how fast the cpu is? */ 71 int test_length; /* how long is the test? */ 72 int so_rcvavoid; /* do we want the remote to avoid receive */ 73 /* copies? */ 74 int so_sndavoid; /* do we want the remote to avoid send copies? */ 75 int dev_name_len; /* the length of the device name string. this */ 76 /* is used to put it into the proper order on */ 77 /* @#$% byte-swapped boxes... */ 78 char xti_device[32]; /* the path to the dlpi device */ 79 }; 80 81 struct xti_tcp_rr_response_struct { 82 int recv_buf_size; /* how big does the client want it */ 83 int no_delay; 84 int measure_cpu; /* does the client want server cpu */ 85 int test_length; /* how long is the test? */ 86 int send_buf_size; 87 int data_port_number; /* connect to me here */ 88 float cpu_rate; /* could we measure */ 89 int so_rcvavoid; /* could the remote avoid receive copies? */ 90 int so_sndavoid; /* could the remote avoid send copies? */ 91 }; 92 93 struct xti_tcp_rr_results_struct { 94 unsigned int bytes_received; /* ignored initially */ 95 unsigned int recv_calls; /* ignored initially */ 96 unsigned int trans_received; /* not ignored */ 97 float elapsed_time; /* how long the test ran */ 98 float cpu_util; /* -1 if not measured */ 99 float serv_dem; /* -1 if not measured */ 100 int cpu_method; /* how was cpu util measured? */ 101 int num_cpus; /* how many CPUs were there */ 102 }; 103 104 struct xti_tcp_conn_rr_request_struct { 105 int recv_buf_size; /* how big does the client want it */ 106 int send_buf_size; 107 int recv_alignment; 108 int recv_offset; 109 int send_alignment; 110 int send_offset; 111 int request_size; 112 int response_size; 113 int no_delay; 114 int measure_cpu; /* does the client want server cpu */ 115 float cpu_rate; /* do we know how fast the cpu is? */ 116 int test_length; /* how long is the test? */ 117 int so_rcvavoid; /* do we want the remote to avoid receive */ 118 /* copies? */ 119 int so_sndavoid; /* do we want the remote to avoid send copies? */ 120 int dev_name_len; /* the length of the device name string. this */ 121 /* is used to put it into the proper order on */ 122 /* @#$% byte-swapped boxes... */ 123 char xti_device[32]; /* the path to the dlpi device */ 124 }; 125 126 127 struct xti_tcp_conn_rr_response_struct { 128 int recv_buf_size; /* how big does the client want it */ 129 int no_delay; 130 int measure_cpu; /* does the client want server cpu */ 131 int test_length; /* how long is the test? */ 132 int send_buf_size; 133 int data_port_number; /* connect to me here */ 134 float cpu_rate; /* could we measure */ 135 int so_rcvavoid; /* could the remote avoid receive copies? */ 136 int so_sndavoid; /* could the remote avoid send copies? */ 137 }; 138 139 struct xti_tcp_conn_rr_results_struct { 140 unsigned int bytes_received; /* ignored initially */ 141 unsigned int recv_calls; /* ignored initially */ 142 unsigned int trans_received; /* not ignored */ 143 float elapsed_time; /* how long the test ran */ 144 float cpu_util; /* -1 if not measured */ 145 float serv_dem; /* -1 if not measured */ 146 int cpu_method; /* how was cpu util measured? */ 147 int num_cpus; /* how many CPUs were there */ 148 }; 149 150 struct xti_udp_stream_request_struct { 151 int recv_buf_size; 152 int message_size; 153 int recv_alignment; 154 int recv_offset; 155 int checksum_off; /* not used. left in for compatibility */ 156 int measure_cpu; 157 float cpu_rate; 158 int test_length; 159 int so_rcvavoid; /* do we want the remote to avoid receive */ 160 /* copies? */ 161 int so_sndavoid; /* do we want the remote to avoid send copies? */ 162 int dev_name_len; /* the length of the device name string. this */ 163 /* is used to put it into the proper order on */ 164 /* @#$% byte-swapped boxes... */ 165 char xti_device[32]; /* the path to the dlpi device */ 166 }; 167 168 struct xti_udp_stream_response_struct { 169 int recv_buf_size; 170 int send_buf_size; 171 int measure_cpu; 172 int test_length; 173 int data_port_number; 174 float cpu_rate; 175 int so_rcvavoid; /* could the remote avoid receive copies? */ 176 int so_sndavoid; /* could the remote avoid send copies? */ 177 }; 178 179 struct xti_udp_stream_results_struct { 180 unsigned int messages_recvd; 181 unsigned int bytes_received; 182 float elapsed_time; 183 float cpu_util; 184 int cpu_method; /* how was cpu util measured? */ 185 int num_cpus; /* how many CPUs were there */ 186 }; 187 188 189 struct xti_udp_rr_request_struct { 190 int recv_buf_size; /* how big does the client want it */ 191 int send_buf_size; 192 int recv_alignment; 193 int recv_offset; 194 int send_alignment; 195 int send_offset; 196 int request_size; 197 int response_size; 198 int no_delay; 199 int measure_cpu; /* does the client want server cpu */ 200 float cpu_rate; /* do we know how fast the cpu is? */ 201 int test_length; /* how long is the test? */ 202 int so_rcvavoid; /* do we want the remote to avoid receive */ 203 /* copies? */ 204 int so_sndavoid; /* do we want the remote to avoid send copies? */ 205 int dev_name_len; /* the length of the device name string. this */ 206 /* is used to put it into the proper order on */ 207 /* @#$% byte-swapped boxes... */ 208 char xti_device[32]; /* the path to the dlpi device */ 209 }; 210 211 struct xti_udp_rr_response_struct { 212 int recv_buf_size; /* how big does the client want it */ 213 int no_delay; 214 int measure_cpu; /* does the client want server cpu */ 215 int test_length; /* how long is the test? */ 216 int send_buf_size; 217 int data_port_number; /* connect to me here */ 218 float cpu_rate; /* could we measure */ 219 int so_rcvavoid; /* could the remote avoid receive copies? */ 220 int so_sndavoid; /* could the remote avoid send copies? */ 221 }; 222 223 struct xti_udp_rr_results_struct { 224 unsigned int bytes_received; /* ignored initially */ 225 unsigned int recv_calls; /* ignored initially */ 226 unsigned int trans_received; /* not ignored */ 227 float elapsed_time; /* how long the test ran */ 228 float cpu_util; /* -1 if not measured */ 229 float serv_dem; /* -1 if not measured */ 230 int cpu_method; /* how was cpu util measured? */ 231 int num_cpus; /* how many CPUs were there */ 232 }; 233 234 extern void send_xti_tcp_stream(char remote_host[]); 235 236 extern void recv_xti_tcp_stream(); 237 238 extern void send_xti_tcp_rr(char remote_host[]); 239 240 extern void send_xti_udp_stream(char remote_host[]); 241 242 extern void recv_xti_udp_stream(); 243 244 extern void send_xti_udp_rr(char remote_host[]); 245 246 extern void recv_xti_udp_rr(); 247 248 extern void recv_xti_tcp_rr(); 249 250 extern void send_xti_tcp_conn_rr(char remote_host[]); 251 252 extern void recv_xti_tcp_conn_rr(); 253 254 extern void scan_xti_args(int argc, char *argv[]); 255 256 257 258 259 260 261 262 263 264 265