spray.x revision 1.4 1 /*
2 * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
3 * unrestricted use provided that this legend is included on all tape
4 * media and as a part of the software program in whole or part. Users
5 * may copy or modify Sun RPC without charge, but are not authorized
6 * to license or distribute it to anyone else except as part of a product or
7 * program developed by the user.
8 *
9 * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
10 * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
11 * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
12 *
13 * Sun RPC is provided with no support and without any obligation on the
14 * part of Sun Microsystems, Inc. to assist in its use, correction,
15 * modification or enhancement.
16 *
17 * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
18 * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
19 * OR ANY PART THEREOF.
20 *
21 * In no event will Sun Microsystems, Inc. be liable for any lost revenue
22 * or profits or other special, indirect and consequential damages, even if
23 * Sun has been advised of the possibility of such damages.
24 *
25 * Sun Microsystems, Inc.
26 * 2550 Garcia Avenue
27 * Mountain View, California 94043
28 */
29
30 /*
31 * Spray a server with packets
32 * Useful for testing flakiness of network interfaces
33 */
34
35 #ifndef RPC_HDR
36 %#include <sys/cdefs.h>
37 %#ifndef lint
38 %/*static char sccsid[] = "from: @(#)spray.x 1.2 87/09/18 Copyr 1987 Sun Micro";*/
39 %/*static char sccsid[] = "from: @(#)spray.x 2.1 88/08/01 4.0 RPCSRC";*/
40 %__RCSID("$NetBSD: spray.x,v 1.4 1999/07/02 15:44:13 simonb Exp $");
41 %#endif /* not lint */
42 #endif
43
44 #ifdef RPC_HDR
45 %#ifndef _RPCSVC_SPRAY_H_
46 %#define _RPCSVC_SPRAY_H_
47 %
48 #endif
49
50 const SPRAYOVERHEAD = 86; /* size of rpc packet when size=0 */
51 const SPRAYMAX = 8845; /* max amount can spray */
52
53
54 /*
55 * GMT since 0:00, 1 January 1970
56 */
57 struct spraytimeval {
58 unsigned int sec;
59 unsigned int usec;
60 };
61
62 /*
63 * spray statistics
64 */
65 struct spraycumul {
66 unsigned int counter;
67 spraytimeval clock;
68 };
69
70 /*
71 * spray data
72 */
73 typedef opaque sprayarr<SPRAYMAX>;
74
75 program SPRAYPROG {
76 version SPRAYVERS {
77 /*
78 * Just throw away the data and increment the counter
79 * This call never returns, so the client should always
80 * time it out.
81 */
82 void
83 SPRAYPROC_SPRAY(sprayarr) = 1;
84
85 /*
86 * Get the value of the counter and elapsed time since
87 * last CLEAR.
88 */
89 spraycumul
90 SPRAYPROC_GET(void) = 2;
91
92 /*
93 * Clear the counter and reset the elapsed time
94 */
95 void
96 SPRAYPROC_CLEAR(void) = 3;
97 } = 1;
98 } = 100012;
99
100
101 #ifdef RPC_HDR
102 %
103 %#endif /* _RPCSVC_SPRAY_H_ */
104 #endif
105