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