Annotation of 43BSD/sys/netns/spp_debug.c, revision 1.1.1.1

1.1       root        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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.