/*
Copyright (C) 1993-2003 Hewlett-Packard Company
*/
/* This file contains the test-specific definitions for netperf's BSD */
/* sockets tests */
struct sctp_stream_request_struct {
int send_buf_size;
int recv_buf_size; /* how big does the client want it - the */
/* receive socket buffer that is */
int receive_size; /* how many bytes do we want to receive at one */
/* time? */
int recv_alignment; /* what is the alignment of the receive */
/* buffer? */
int recv_offset; /* and at what offset from that alignment? */
int no_delay; /* do we disable the nagle algorithm for send */
/* coalescing? */
int measure_cpu; /* does the client want server cpu utilization */
/* measured? */
float cpu_rate; /* do we know how fast the cpu is already? */
int test_length; /* how long is the test? */
int so_rcvavoid; /* do we want the remote to avoid copies on */
/* receives? */
int so_sndavoid; /* do we want the remote to avoid send copies? */
int dirty_count; /* how many integers in the receive buffer */
/* should be made dirty before calling recv? */
int clean_count; /* how many integers should be read from the */
/* recv buffer before calling recv? */
int port; /* the to port to which recv side should bind
to allow netperf to run through firewalls */
int ipfamily; /* address family of ipaddress */
int non_blocking; /* run the test in non-blocking mode */
};
struct sctp_stream_response_struct {
int recv_buf_size; /* how big does the client want it */
int receive_size;
int no_delay;
int measure_cpu; /* does the client want server cpu */
int test_length; /* how long is the test? */
int send_buf_size;
int data_port_number; /* connect to me here */
float cpu_rate; /* could we measure */
int so_rcvavoid; /* could the remote avoid receive copies? */
int so_sndavoid; /* could the remote avoid send copies? */
int non_blocking; /* run the test in non-blocking mode */
};
struct sctp_stream_results_struct {
double bytes_received;
unsigned int recv_calls;
float elapsed_time; /* how long the test ran */
float cpu_util; /* -1 if not measured */
float serv_dem; /* -1 if not measured */
int cpu_method; /* how was cpu util measured? */
int num_cpus; /* how many CPUs had the remote? */
};
struct sctp_rr_request_struct {
int recv_buf_size; /* how big does the client want it */
int send_buf_size;
int recv_alignment;
int recv_offset;
int send_alignment;
int send_offset;
int request_size;
int response_size;
int no_delay;
int measure_cpu; /* does the client want server cpu */
float cpu_rate; /* do we know how fast the cpu is? */
int test_length; /* how long is the test? */
int so_rcvavoid; /* do we want the remote to avoid receive */
/* copies? */
int so_sndavoid; /* do we want the remote to avoid send copies? */
int port; /* the to port to which recv side should bind
to allow netperf to run through firewalls */
int ipfamily; /* address family of ipaddress */
int non_blocking; /* run the test in non-blocking mode */
};
struct sctp_rr_response_struct {
int recv_buf_size; /* how big does the client want it */
int no_delay;
int measure_cpu; /* does the client want server cpu */
int test_length; /* how long is the test? */
int send_buf_size;
int data_port_number; /* connect to me here */
float cpu_rate; /* could we measure */
int so_rcvavoid; /* could the remote avoid receive copies? */
int so_sndavoid; /* could the remote avoid send copies? */
int non_blocking; /* run the test in non-blocking mode */
};
struct sctp_rr_results_struct {
unsigned int bytes_received; /* ignored initially */
unsigned int recv_calls; /* ignored initially */
unsigned int trans_received; /* not ignored */
float elapsed_time; /* how long the test ran */
float cpu_util; /* -1 if not measured */
float serv_dem; /* -1 if not measured */
int cpu_method; /* how was cpu util measured? */
int num_cpus; /* how many CPUs had the remote? */
};
#define SCTP_SNDRCV_INFO_EV 0x01
#define SCTP_ASSOC_CHANGE_EV 0x02
#define SCTP_PEERADDR_CHANGE_EV 0x04
#define SCTP_SND_FAILED_EV 0x08
#define SCTP_REMOTE_ERROR_EV 0x10
#define SCTP_SHUTDOWN_EV 0x20
#define SCTP_PD_EV 0x40
#define SCTP_ADAPT_EV 0x80
typedef enum sctp_disposition {
SCTP_OK = 1,
SCTP_CLOSE,
} sctp_disposition_t;
extern void scan_sctp_args( int argc, char *argv[] );
extern void send_sctp_stream( char remote_host[] );
extern void send_sctp_stream_1toMany( char remote_host[] );
extern void send_sctp_rr( char remote_host[] );
extern void send_sctp_rr_1toMany( char remote_host[] );
extern void recv_sctp_stream( void );
extern void recv_sctp_stream_1toMany( void );
extern void recv_sctp_rr( void );
extern void recv_sctp_rr_1toMany( void );
extern void loc_cpu_rate();
extern void rem_cpu_rate();