spray.x
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

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