1: /*
   2:  * Copyright (c) 1984, 1985, 1986 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:  *	@(#)spp_debug.c	7.1 (Berkeley) 6/5/86
   7:  */
   8: 
   9: #include "param.h"
  10: #include "systm.h"
  11: #include "mbuf.h"
  12: #include "socket.h"
  13: #include "socketvar.h"
  14: #include "protosw.h"
  15: #include "errno.h"
  16: 
  17: #include "../net/route.h"
  18: #include "../net/if.h"
  19: #include "../netinet/tcp_fsm.h"
  20: #include "../netinet/tcp_timer.h"
  21: 
  22: #include "ns.h"
  23: #include "ns_pcb.h"
  24: #include "idp.h"
  25: #include "idp_var.h"
  26: #include "sp.h"
  27: #include "spidp.h"
  28: #include "spp_var.h"
  29: #define SANAMES
  30: #include "spp_debug.h"
  31: 
  32: int sppconsdebug = 0;
  33: /*
  34:  * spp debug routines
  35:  */
  36: spp_trace(act, ostate, sp, si, req)
  37:     short act;
  38:     u_char ostate;
  39:     struct sppcb *sp;
  40:     struct spidp *si;
  41:     int req;
  42: {
  43: #ifdef INET
  44:     u_short seq, ack, len, alo;
  45:     unsigned long iptime();
  46:     int flags;
  47:     struct spp_debug *sd = &spp_debug[spp_debx++];
  48:     extern char *prurequests[];
  49:     extern char *sanames[];
  50:     extern char *tcpstates[];
  51:     extern char *tcptimers[];
  52: 
  53:     if (spp_debx == SPP_NDEBUG)
  54:         spp_debx = 0;
  55:     sd->sd_time = iptime();
  56:     sd->sd_act = act;
  57:     sd->sd_ostate = ostate;
  58:     sd->sd_cb = (caddr_t)sp;
  59:     if (sp)
  60:         sd->sd_sp = *sp;
  61:     else
  62:         bzero((caddr_t)&sd->sd_sp, sizeof (*sp));
  63:     if (si)
  64:         sd->sd_si = *si;
  65:     else
  66:         bzero((caddr_t)&sd->sd_si, sizeof (*si));
  67:     sd->sd_req = req;
  68:     if (sppconsdebug == 0)
  69:         return;
  70:     if (ostate >= TCP_NSTATES) ostate = 0;
  71:     if (act >= SA_DROP) act = SA_DROP;
  72:     if (sp)
  73:         printf("%x %s:", sp, tcpstates[ostate]);
  74:     else
  75:         printf("???????? ");
  76:     printf("%s ", sanames[act]);
  77:     switch (act) {
  78: 
  79:     case SA_RESPOND:
  80:     case SA_INPUT:
  81:     case SA_OUTPUT:
  82:     case SA_DROP:
  83:         if (si == 0)
  84:             break;
  85:         seq = si->si_seq;
  86:         ack = si->si_ack;
  87:         alo = si->si_alo;
  88:         len = si->si_len;
  89:         if (act == SA_OUTPUT) {
  90:             seq = ntohs(seq);
  91:             ack = ntohs(ack);
  92:             alo = ntohs(alo);
  93:             len = ntohs(len);
  94:         }
  95: #ifndef lint
  96: #define p1(f)  { printf("%s = %x, ", "f", f); }
  97:         p1(seq); p1(ack); p1(alo); p1(len);
  98: #endif
  99:         flags = si->si_cc;
 100:         if (flags) {
 101:             char *cp = "<";
 102: #ifndef lint
 103: #define pf(f) { if (flags&SP_/**/f) { printf("%s%s", cp, "f"); cp = ","; } }
 104:             pf(SP); pf(SA); pf(OB); pf(EM);
 105: #else
 106:             cp = cp;
 107: #endif
 108:             printf(">");
 109:         }
 110: #ifndef lint
 111: #define p2(f)  { printf("%s = %x, ", "f", si->si_/**/f); }
 112:         p2(sid);p2(did);p2(dt);p2(pt);
 113: #endif
 114:         ns_printhost(&si->si_sna);
 115:         ns_printhost(&si->si_dna);
 116: 
 117:         if (act==SA_RESPOND) {
 118:             printf("idp_len = %x, ",
 119:                 ((struct idp *)si)->idp_len);
 120:         }
 121:         break;
 122: 
 123:     case SA_USER:
 124:         printf("%s", prurequests[req&0xff]);
 125:         if ((req & 0xff) == PRU_SLOWTIMO)
 126:             printf("<%s>", tcptimers[req>>8]);
 127:         break;
 128:     }
 129:     if (sp)
 130:         printf(" -> %s", tcpstates[sp->s_state]);
 131:     /* print out internal state of sp !?! */
 132:     printf("\n");
 133:     if (sp == 0)
 134:         return;
 135: #ifndef lint
 136: #define p3(f)  { printf("%s = %x, ", "f", sp->s_/**/f); }
 137:     printf("\t"); p3(rack);p3(ralo);p3(snt);p3(flags); printf("\n");
 138: #endif
 139: #endif
 140: }

Defined functions

spp_trace defined in line 36; used 6 times

Defined variables

sppconsdebug defined in line 32; used 2 times

Defined macros

SANAMES defined in line 29; never used
p1 defined in line 96; used 4 times
  • in line 97(4)
p2 defined in line 111; used 4 times
  • in line 112(4)
p3 defined in line 136; used 4 times
  • in line 137(4)
pf defined in line 103; used 4 times
  • in line 104(4)
Last modified: 1986-06-05
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1075
Valid CSS Valid XHTML 1.0 Strict