1: /*
   2:  * Copyright (c) 1983 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  *
   6:  *	@(#)trace.h	5.4 (Berkeley) 9/17/85";
   7:  *
   8:  * Includes material written at Cornell University by Bill Nesheim,
   9:  * by permission of the author.
  10:  */
  11: 
  12: /*
  13:  * Xerox Routing Information Protocol.
  14:  */
  15: 
  16: /*
  17:  * Trace record format.
  18:  */
  19: struct  iftrace {
  20:     time_t  ift_stamp;      /* time stamp */
  21:     struct  sockaddr ift_who;   /* from/to */
  22:     char    *ift_packet;        /* pointer to packet */
  23:     short   ift_size;       /* size of packet */
  24:     short   ift_metric;     /* metric  */
  25: };
  26: 
  27: /*
  28:  * Per interface packet tracing buffers.  An incoming and
  29:  * outgoing circular buffer of packets is maintained, per
  30:  * interface, for debugging.  Buffers are dumped whenever
  31:  * an interface is marked down.
  32:  */
  33: struct  ifdebug {
  34:     struct  iftrace *ifd_records;   /* array of trace records */
  35:     struct  iftrace *ifd_front; /* next empty trace record */
  36:     int ifd_count;      /* number of unprinted records */
  37:     struct  interface *ifd_if;  /* for locating stuff */
  38: };
  39: 
  40: /*
  41:  * Packet tracing stuff.
  42:  */
  43: int tracepackets;       /* watch packets as they go by */
  44: int tracing;        /* on/off */
  45: FILE    *ftrace;        /* output trace file */
  46: 
  47: #define TRACE_ACTION(action, route) { \
  48:       if (tracing) \
  49:         traceaction(ftrace, "action", route); \
  50:     }
  51: #define TRACE_INPUT(ifp, src, size) { \
  52:       if (tracing) { \
  53:         ifp = if_iflookup(src); \
  54:         if (ifp) \
  55:             trace(&ifp->int_input, src, &packet[sizeof(struct idp)], size, \
  56:                 ntohl(ifp->int_metric)); \
  57:       } \
  58:       if (tracepackets && ftrace) \
  59:         dumppacket(ftrace, "from", src, &packet[sizeof(struct idp)], size); \
  60:     }
  61: #define TRACE_OUTPUT(ifp, dst, size) { \
  62:       if (tracing) { \
  63:         ifp = if_iflookup(dst); \
  64:         if (ifp) \
  65:             trace(&ifp->int_output, dst, &packet[sizeof(struct idp)], size, ifp->int_metric); \
  66:       } \
  67:       if (tracepackets && ftrace) \
  68:         dumppacket(ftrace, "to", dst, &packet[sizeof(struct idp)], size); \
  69:     }

Defined variables

tracepackets defined in line 43; used 6 times
tracing defined in line 44; used 9 times

Defined struct's

ifdebug defined in line 33; used 6 times
iftrace defined in line 19; used 14 times

Defined macros

TRACE_ACTION defined in line 47; used 5 times
TRACE_INPUT defined in line 51; used 1 times

Usage of this include

Last modified: 1985-09-18
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 843
Valid CSS Valid XHTML 1.0 Strict