Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ spray(3N) — svr4 — mips UMIPS RISC/os 5.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

rpc_clnt_calls(3N)

spray(1M)

sprayd(1M)



SPRAY(3N-SVR4)      RISC/os Reference Manual       SPRAY(3N-SVR4)



NAME
     spray - scatter data in order to check the network

SYNOPSIS
     #include <rpcsvc/spray.h>

DESCRIPTION
     The spray protocol sends packets to a given machine to test
     the speed and reliability of communications with that
     machine.

     The spray protocol is not a C function interface, per se,
     but can be accessed using the generic remote procedure cal-
     ling interface clnt_call() [see rpc_clnt_calls(3N)].  The
     protocol sends a packet to the called host.  The host ack-
     nowledges receipt of the packet.  The protocol counts the
     number of acknowledgments and can return that count.

     The spray protocol currently supports the following pro-
     cedures, which should be called in the order given:

          SPRAYPROC_CLEAR     This procedure clears the counter.

          SPRAYPROC_SPRAY     This procedure sends the packet.

          SPRAYPROC_GET       This procedure returns the count
                              and the amount of time since the
                              last SPRAYPROC_CLEAR.

     The following XDR routines are available in librpcsvc:

          xdr_sprayarr
          xdr_spraycumul

EXAMPLE
     The following code fragment demonstrates how the spray pro-
     tocol is used:
     #include <rpc/rpc.h>
     #include <rpcsvc/spray.h>

      .  .  .
          spraycumul     spray_result;
          sprayarr  spray_data;
          char      buf[100];      /* arbitrary data */
          int       loop = 1000;
          CLIENT    *clnt;
          struct timeval timeout0 = {0, 0};
          struct timeval timeout25 = {25, 0};

          spray_data.sprayarr_len = (u_int)100;
          spray_data.sprayarr_val = buf;




                        Printed 11/19/92                   Page 1





SPRAY(3N-SVR4)      RISC/os Reference Manual       SPRAY(3N-SVR4)



          clnt = clnt_create("somehost", SPRAYPROG, SPRAYVERS, "netpath");
          if (clnt == (CLIENT *)NULL) {
               /* handle this error */
          }
          if (clnt_call(clnt, SPRAYPROC_CLEAR,
               xdr_void, NULL, xdr_void, NULL, timeout25)) {
                    /* handle this error */
          }
          while (loop-- > 0) {
               if (clnt_call(clnt, SPRAYPROC_SPRAY,
                    xdr_sprayarr, &spray_data, xdr_void, NULL, timeout0)) {
                         /* handle this error */
               }
          }
          if (clnt_call(clnt, SPRAYPROC_GET,
               xdr_void, NULL, xdr_spraycumul, &spray_result, timeout25)) {
                    /* handle this error */
          }
          printf("Acknowledged %ld of 1000 packets in %d secs %d usecs\n",
               spray_result.counter,
               spray_result.clock.sec,
               spray_result.clock.usec);


SEE ALSO
     rpc_clnt_calls(3N), spray(1M), sprayd(1M).





























 Page 2                 Printed 11/19/92



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026