blob: 595c3a56c3d9172e85c0efbfe152995d6fe80ff7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
/*
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();
|