102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project/* 202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project Copyright (C) 1993-2003 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 BSD */ 602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project /* sockets tests */ 702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project 802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project 902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectstruct sctp_stream_request_struct { 1002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int send_buf_size; 1102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int recv_buf_size; /* how big does the client want it - the */ 1202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project /* receive socket buffer that is */ 1302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int receive_size; /* how many bytes do we want to receive at one */ 1402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project /* time? */ 1502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int recv_alignment; /* what is the alignment of the receive */ 1602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project /* buffer? */ 1702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int recv_offset; /* and at what offset from that alignment? */ 1802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int no_delay; /* do we disable the nagle algorithm for send */ 1902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project /* coalescing? */ 2002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int measure_cpu; /* does the client want server cpu utilization */ 2102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project /* measured? */ 2202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project float cpu_rate; /* do we know how fast the cpu is already? */ 2302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int test_length; /* how long is the test? */ 2402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int so_rcvavoid; /* do we want the remote to avoid copies on */ 2502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project /* receives? */ 2602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int so_sndavoid; /* do we want the remote to avoid send copies? */ 2702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int dirty_count; /* how many integers in the receive buffer */ 2802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project /* should be made dirty before calling recv? */ 2902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int clean_count; /* how many integers should be read from the */ 3002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project /* recv buffer before calling recv? */ 3102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int port; /* the to port to which recv side should bind 3202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project to allow netperf to run through firewalls */ 3302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int ipfamily; /* address family of ipaddress */ 3402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int non_blocking; /* run the test in non-blocking mode */ 3502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project}; 3602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project 3702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectstruct sctp_stream_response_struct { 3802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int recv_buf_size; /* how big does the client want it */ 3902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int receive_size; 4002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int no_delay; 4102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int measure_cpu; /* does the client want server cpu */ 4202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int test_length; /* how long is the test? */ 4302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int send_buf_size; 4402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int data_port_number; /* connect to me here */ 4502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project float cpu_rate; /* could we measure */ 4602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int so_rcvavoid; /* could the remote avoid receive copies? */ 4702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int so_sndavoid; /* could the remote avoid send copies? */ 4802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int non_blocking; /* run the test in non-blocking mode */ 4902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project}; 5002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project 5102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectstruct sctp_stream_results_struct { 5202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project double bytes_received; 5302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project unsigned int recv_calls; 5402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project float elapsed_time; /* how long the test ran */ 5502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project float cpu_util; /* -1 if not measured */ 5602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project float serv_dem; /* -1 if not measured */ 5702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int cpu_method; /* how was cpu util measured? */ 5802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int num_cpus; /* how many CPUs had the remote? */ 5902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project}; 6002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project 6102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectstruct sctp_rr_request_struct { 6202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int recv_buf_size; /* how big does the client want it */ 6302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int send_buf_size; 6402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int recv_alignment; 6502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int recv_offset; 6602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int send_alignment; 6702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int send_offset; 6802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int request_size; 6902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int response_size; 7002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int no_delay; 7102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int measure_cpu; /* does the client want server cpu */ 7202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project float cpu_rate; /* do we know how fast the cpu is? */ 7302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int test_length; /* how long is the test? */ 7402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int so_rcvavoid; /* do we want the remote to avoid receive */ 7502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project /* copies? */ 7602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int so_sndavoid; /* do we want the remote to avoid send copies? */ 7702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int port; /* the to port to which recv side should bind 7802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project to allow netperf to run through firewalls */ 7902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int ipfamily; /* address family of ipaddress */ 8002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int non_blocking; /* run the test in non-blocking mode */ 8102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project}; 8202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project 8302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectstruct sctp_rr_response_struct { 8402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int recv_buf_size; /* how big does the client want it */ 8502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int no_delay; 8602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int measure_cpu; /* does the client want server cpu */ 8702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int test_length; /* how long is the test? */ 8802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int send_buf_size; 8902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int data_port_number; /* connect to me here */ 9002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project float cpu_rate; /* could we measure */ 9102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int so_rcvavoid; /* could the remote avoid receive copies? */ 9202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int so_sndavoid; /* could the remote avoid send copies? */ 9302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int non_blocking; /* run the test in non-blocking mode */ 9402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project}; 9502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project 9602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectstruct sctp_rr_results_struct { 9702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project unsigned int bytes_received; /* ignored initially */ 9802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project unsigned int recv_calls; /* ignored initially */ 9902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project unsigned int trans_received; /* not ignored */ 10002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project float elapsed_time; /* how long the test ran */ 10102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project float cpu_util; /* -1 if not measured */ 10202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project float serv_dem; /* -1 if not measured */ 10302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int cpu_method; /* how was cpu util measured? */ 10402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project int num_cpus; /* how many CPUs had the remote? */ 10502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project}; 10602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project 10702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project#define SCTP_SNDRCV_INFO_EV 0x01 10802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project#define SCTP_ASSOC_CHANGE_EV 0x02 10902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project#define SCTP_PEERADDR_CHANGE_EV 0x04 11002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project#define SCTP_SND_FAILED_EV 0x08 11102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project#define SCTP_REMOTE_ERROR_EV 0x10 11202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project#define SCTP_SHUTDOWN_EV 0x20 11302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project#define SCTP_PD_EV 0x40 11402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project#define SCTP_ADAPT_EV 0x80 11502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project 11602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projecttypedef enum sctp_disposition { 11702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project SCTP_OK = 1, 11802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project SCTP_CLOSE, 11902fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project} sctp_disposition_t; 12002fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project 12102fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectextern void send_sctp_stream(); 12202fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectextern void send_sctp_rr(); 12302fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project 12402fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectextern void recv_sctp_stream(); 12502fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectextern void recv_sctp_rr(); 12602fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Project 12702fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectextern void loc_cpu_rate(); 12802fb0aca1189a2c1fd20806c588e9ee80d9755f8The Android Open Source Projectextern void rem_cpu_rate(); 129