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