xref: /openbsd/sys/netinet/tcp_debug.h (revision 36d7e348)
1 /*	$OpenBSD: tcp_debug.h,v 1.11 2018/05/10 13:30:25 bluhm Exp $	*/
2 /*	$NetBSD: tcp_debug.h,v 1.5 1994/06/29 06:38:38 cgd Exp $	*/
3 
4 /*
5  * Copyright (c) 1982, 1986, 1993
6  *	The Regents of the University of California.  All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  * 3. Neither the name of the University nor the names of its contributors
17  *    may be used to endorse or promote products derived from this software
18  *    without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30  * SUCH DAMAGE.
31  *
32  *	@(#)tcp_debug.h	8.1 (Berkeley) 6/10/93
33  */
34 
35 #ifndef _NETINET_TCP_DEBUG_H_
36 #define _NETINET_TCP_DEBUG_H_
37 
38 /*
39  * Tcp+ip header, after ip options removed.
40  */
41 struct tcpiphdr {
42 	struct	ipovly ti_i;		/* overlaid ip structure */
43 	struct	tcphdr ti_t;		/* tcp header */
44 };
45 #define	ti_x1		ti_i.ih_x1
46 #define	ti_pr		ti_i.ih_pr
47 #define	ti_len		ti_i.ih_len
48 #define	ti_src		ti_i.ih_src
49 #define	ti_dst		ti_i.ih_dst
50 #define	ti_sport	ti_t.th_sport
51 #define	ti_dport	ti_t.th_dport
52 #define	ti_seq		ti_t.th_seq
53 #define	ti_ack		ti_t.th_ack
54 #define	ti_x2		ti_t.th_x2
55 #define	ti_off		ti_t.th_off
56 #define	ti_flags	ti_t.th_flags
57 #define	ti_win		ti_t.th_win
58 #define	ti_sum		ti_t.th_sum
59 #define	ti_urp		ti_t.th_urp
60 
61 struct tcpipv6hdr {
62 	struct ip6_hdr ti6_i;
63 	struct tcphdr ti6_t;
64 };
65 
66 #define	ti6_src		ti6_i.ip6_src
67 #define	ti6_dst		ti6_i.ip6_dst
68 #define	ti6_plen	ti6_i.ip6_plen
69 #define	ti6_sport	ti6_t.th_sport
70 #define	ti6_dport	ti6_t.th_dport
71 #define	ti6_seq		ti6_t.th_seq
72 #define	ti6_ack		ti6_t.th_ack
73 #define	ti6_x2		ti6_t.th_x2
74 #define	ti6_off		ti6_t.th_off
75 #define	ti6_flags	ti6_t.th_flags
76 #define	ti6_win		ti6_t.th_win
77 #define	ti6_sum		ti6_t.th_sum
78 #define	ti6_urp		ti6_t.th_urp
79 
80 struct	tcp_debug {
81 	uint32_t td_time;
82 	short	td_act;
83 	short	td_ostate;
84 	caddr_t	td_tcb;
85 	struct	tcpiphdr td_ti;
86 	struct  tcpipv6hdr td_ti6;
87 	short	td_req;
88 	struct	tcpcb td_cb;
89 };
90 
91 #define	TA_INPUT	0
92 #define	TA_OUTPUT	1
93 #define	TA_USER		2
94 #define	TA_RESPOND	3
95 #define	TA_DROP		4
96 #define	TA_TIMER	5
97 
98 #ifdef TANAMES
99 const char *tanames[] =
100     { "input", "output", "user", "respond", "drop", "timer" };
101 #endif /* TANAMES */
102 
103 #define	TCP_NDEBUG 100
104 extern struct	tcp_debug tcp_debug[];
105 extern int	tcp_debx;
106 #endif /* _NETINET_TCP_DEBUG_H_ */
107