/* Copyright (C) 1993-2012 Hewlett-Packard Company */ /* libraried performance include file */ /* the define NOPERFEXTERN tels us not to re-define all the */ /* defines and defaults */ #define HOSTNAMESIZE 255 #define PORTBUFSIZE 10 #define DEFAULT_SIZE 32768 #define HOST_NAME "127.0.0.1" #define TEST_PORT "12865" /* output controlling variables */ #define DEBUG 0 /* debugging level */ #define VERBOSITY 0 /* verbosity level */ /* the end-test conditions for the tests - either transactions, bytes, */ /* or time. different vars used for clarity - space is cheap ;-) */ #define TEST_TIME 10 /* test ends by time */ #define TEST_BYTES 0 /* test ends on byte count */ #define TEST_TRANS 0 /* test ends on tran count */ /* the alignment conditions for the tests */ #define LOC_RECV_ALIGN 4 /* alignment for local receives */ #define LOC_SEND_ALIGN 4 /* alignment for local sends */ #define REM_RECV_ALIGN 4 /* alignment for remote receive */ #define REM_SEND_ALIGN 4 /* alignment for remote sends */ /* which way are we going and what are we doing in this handbasket?-) */ #define NETPERF_XMIT 0x2 #define NETPERF_RECV 0x4 #define NETPERF_IS_RR(x) (((x & NETPERF_XMIT) && (x & NETPERF_RECV)) || \ (!((x & NETPERF_XMIT) || (x & NETPERF_RECV)))) #define NETPERF_RECV_ONLY(x) ((x & NETPERF_RECV) && !(x & NETPERF_XMIT)) #define NETPERF_XMIT_ONLY(x) ((x & NETPERF_XMIT) && !(x & NETPERF_RECV)) #define NETPERF_CC(x) (!(x & NETPERF_XMIT) && !(x & NETPERF_RECV)) /* misc defines for the hell of it */ #ifndef MAXLONG #define MAXLONG 4294967295UL #endif /* MAXLONG */ #ifdef WANT_DCCP /* include netinet/in.h to see if SOCK_DCCP and IPPROTO_DCCP are there */ #include <netinet/in.h> #ifndef SOCK_DCCP #define DCCP_WARNING #define SOCK_DCCP 6 #endif #ifndef IPPROTO_DCCP #define DCCP_WARNING #define IPPROTO_DCCP 33 /* defined by the IANA */ #endif #ifndef SOL_DCCP #define DCCP_WARNING #define SOL_DCCP 269 #endif #ifdef DCCP_WARNING #warning This platform is missing one of sock_dccp ipproto_dccp or sol_dccp #endif #endif #ifndef NETSH extern char *program; /* program invocation name */ extern char *command_line; /* how we were invoked */ extern char *passphrase; /* stuff to say where this test is going */ extern char host_name[HOSTNAMESIZE];/* remote host name or ip addr */ extern char local_host_name[HOSTNAMESIZE]; extern char test_port[PORTBUFSIZE]; /* where is the test waiting */ extern char local_test_port[PORTBUFSIZE]; extern int address_family; extern int local_address_family; extern int parse_address_family(char family_string[]); extern int parse_socket_type(char socket_string[]); extern int parse_protocol(char protocol_string[]); extern int parse_direction(char direction_string[]); extern void set_defaults(); extern void scan_cmd_line(int argc, char *argv[]); extern void dump_globals(); extern void break_args(char *s, char *arg1, char *arg2); extern void break_args_explicit(char *s, char *arg1, char *arg2); extern void break_args_explicit_sep(char *s, int sep, char *arg1, char *arg2); extern void print_netserver_usage(); /* output controlling variables */ extern int debug, /* debugging level */ print_headers, /* do/don't print test headers */ verbosity, /* verbosity level */ keep_histogram, /* do we keep a histogram of interesting times? */ keep_statistics; /* do we keep/calculate expensive statistics? */ /* the end-test conditions for the tests - either transactions, bytes, */ /* or time. different vars used for clarity - space is cheap ;-) */ extern int test_time, /* test ends by time */ test_len_ticks, test_bytes, /* test ends on byte count */ test_trans; /* test ends on tran count */ /* wait time between control/data connection establishment and start of data traffic */ extern int wait_time_secs; /* the alignment conditions for the tests */ extern int local_recv_align, /* alignment for local receives */ local_send_align, /* alignment for local sends */ remote_recv_align, /* alignment for remote receives */ remote_send_align, /* alignment for remote sends */ local_send_offset, local_recv_offset, remote_send_offset, remote_recv_offset, remote_send_width, remote_recv_width; /* hoist these above the #if to deal with either netperf or netserver configured for it */ extern int interval_usecs; extern int interval_wate; extern int interval_burst; extern int remote_interval_usecs; extern int remote_interval_burst; #ifdef DIRTY extern int rem_dirty_count; extern int rem_clean_count; extern int loc_dirty_count; extern int loc_clean_count; #endif /* DIRTY */ /* stuff for confidence intervals */ extern int confidence_level; extern int iteration_min; extern int iteration_max; extern int result_confidence_only; extern double interval; extern double interval_pct; extern int cpu_binding_requested; /* stuff to control the bufferspace "width" */ extern int send_width; extern int recv_width; /* control the socket priority */ extern int local_socket_prio; extern int remote_socket_prio; extern int local_socket_tos; extern int remote_socket_tos; /* address family */ extern int af; /* different options for other things */ extern int local_cpu_usage, remote_cpu_usage; extern float local_cpu_rate, remote_cpu_rate; extern int shell_num_cpus; extern char test_name[BUFSIZ]; extern char local_fill_file[BUFSIZ], remote_fill_file[32]; extern char * result_brand; extern int no_control; #ifdef WANT_DLPI extern int loc_ppa, rem_ppa; extern int dlpi_sap; #endif /* WANT_DLPI */ #endif extern int parse_ipqos(const char *cp); extern const char * iptos2str(int iptos);