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 8struct 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 36struct 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 49struct 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 59struct 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 81struct 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 93struct 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 104struct 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 127struct 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 139struct 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 150struct 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 168struct 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 179struct 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 189struct 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 211struct 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 223struct 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 234extern void send_xti_tcp_stream(char remote_host[]); 235 236extern void recv_xti_tcp_stream(); 237 238extern void send_xti_tcp_rr(char remote_host[]); 239 240extern void send_xti_udp_stream(char remote_host[]); 241 242extern void recv_xti_udp_stream(); 243 244extern void send_xti_udp_rr(char remote_host[]); 245 246extern void recv_xti_udp_rr(); 247 248extern void recv_xti_tcp_rr(); 249 250extern void send_xti_tcp_conn_rr(char remote_host[]); 251 252extern void recv_xti_tcp_conn_rr(); 253 254extern void scan_xti_args(int argc, char *argv[]); 255 256 257 258 259 260 261 262 263 264 265