]>
git.saurik.com Git - apple/xnu.git/blob - bsd/netns/spp_debug.c
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
4 * @APPLE_LICENSE_HEADER_START@
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
20 * @APPLE_LICENSE_HEADER_END@
23 * Copyright (c) 1984, 1985, 1986, 1987, 1993
24 * The Regents of the University of California. All rights reserved.
26 * Redistribution and use in source and binary forms, with or without
27 * modification, are permitted provided that the following conditions
29 * 1. Redistributions of source code must retain the above copyright
30 * notice, this list of conditions and the following disclaimer.
31 * 2. Redistributions in binary form must reproduce the above copyright
32 * notice, this list of conditions and the following disclaimer in the
33 * documentation and/or other materials provided with the distribution.
34 * 3. All advertising materials mentioning features or use of this software
35 * must display the following acknowledgement:
36 * This product includes software developed by the University of
37 * California, Berkeley and its contributors.
38 * 4. Neither the name of the University nor the names of its contributors
39 * may be used to endorse or promote products derived from this software
40 * without specific prior written permission.
42 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
43 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
44 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
45 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
46 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
47 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
48 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
49 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
50 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
51 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
54 * @(#)spp_debug.c 8.1 (Berkeley) 6/10/93
57 #include <sys/param.h>
58 #include <sys/systm.h>
60 #include <sys/socket.h>
61 #include <sys/socketvar.h>
62 #include <sys/protosw.h>
63 #include <sys/errno.h>
65 #include <net/route.h>
67 #include <netinet/tcp_fsm.h>
70 #include <netns/ns_pcb.h>
71 #include <netns/idp.h>
72 #include <netns/idp_var.h>
74 #include <netns/spidp.h>
76 #include <netns/spp_timer.h>
77 #include <netns/spp_var.h>
79 #include <netns/spp_debug.h>
85 spp_trace(act
, ostate
, sp
, si
, req
)
94 u_short seq
, ack
, len
, alo
;
95 unsigned long iptime();
97 struct spp_debug
*sd
= &spp_debug
[spp_debx
++];
98 extern char *prurequests
[];
99 extern char *sanames
[];
100 extern char *tcpstates
[];
101 extern char *spptimers
[];
103 if (spp_debx
== SPP_NDEBUG
)
105 sd
->sd_time
= iptime();
107 sd
->sd_ostate
= ostate
;
108 sd
->sd_cb
= (caddr_t
)sp
;
112 bzero((caddr_t
)&sd
->sd_sp
, sizeof (*sp
));
116 bzero((caddr_t
)&sd
->sd_si
, sizeof (*si
));
118 if (sppconsdebug
== 0)
120 if (ostate
>= TCP_NSTATES
) ostate
= 0;
121 if (act
>= SA_DROP
) act
= SA_DROP
;
123 printf("%x %s:", sp
, tcpstates
[ostate
]);
126 printf("%s ", sanames
[act
]);
139 if (act
== SA_OUTPUT
) {
146 #define p1(f) { printf("%s = %x, ", "f", f); }
147 p1(seq
); p1(ack
); p1(alo
); p1(len
);
153 #define pf(f) { if (flags&SP_/**/f) { printf("%s%s", cp, "f"); cp = ","; } }
154 pf(SP
); pf(SA
); pf(OB
); pf(EM
);
161 #define p2(f) { printf("%s = %x, ", "f", si->si_/**/f); }
162 p2(sid
);p2(did
);p2(dt
);p2(pt
);
164 ns_printhost(&si
->si_sna
);
165 ns_printhost(&si
->si_dna
);
167 if (act
==SA_RESPOND
) {
168 printf("idp_len = %x, ",
169 ((struct idp
*)si
)->idp_len
);
174 printf("%s", prurequests
[req
&0xff]);
175 if ((req
& 0xff) == PRU_SLOWTIMO
)
176 printf("<%s>", spptimers
[req
>>8]);
180 printf(" -> %s", tcpstates
[sp
->s_state
]);
181 /* print out internal state of sp !?! */
186 #define p3(f) { printf("%s = %x, ", "f", sp->s_/**/f); }
187 printf("\t"); p3(rack
);p3(ralo
);p3(smax
);p3(flags
); printf("\n");