git: eaabc9376483 - main - tcp: retire TCPDEBUG
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 14 Dec 2022 17:54:38 UTC
The branch main has been updated by glebius:
URL: https://cgit.FreeBSD.org/src/commit/?id=eaabc93764836c720f44d6852b30fda1901f3a66
commit eaabc93764836c720f44d6852b30fda1901f3a66
Author: Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2022-12-14 17:54:06 +0000
Commit: Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2022-12-14 17:54:06 +0000
tcp: retire TCPDEBUG
This subsystem is superseded by modern debugging facilities,
e.g. DTrace probes and TCP black box logging.
We intentionally leave SO_DEBUG in place, as many utilities may
set it on a socket. Also the tcp::debug DTrace probes look at
this flag on a socket.
Reviewed by: gnn, tuexen
Discussed with: rscheff, rrs, jtl
Differential revision: https://reviews.freebsd.org/D37694
---
ObsoleteFiles.inc | 3 +
sys/conf/NOTES | 5 -
sys/conf/files | 1 -
sys/conf/options | 1 -
sys/modules/tcp/bbr/Makefile | 1 -
sys/modules/tcp/rack/Makefile | 1 -
sys/netinet/in_kdtrace.h | 51 +++++++
sys/netinet/tcp_debug.c | 225 -------------------------------
sys/netinet/tcp_debug.h | 119 ----------------
sys/netinet/tcp_ecn.c | 1 -
sys/netinet/tcp_hpts.c | 4 -
sys/netinet/tcp_input.c | 63 ---------
sys/netinet/tcp_output.c | 30 -----
sys/netinet/tcp_ratelimit.c | 1 -
sys/netinet/tcp_reass.c | 4 -
sys/netinet/tcp_sack.c | 4 -
sys/netinet/tcp_stacks/bbr.c | 64 +--------
sys/netinet/tcp_stacks/rack.c | 33 -----
sys/netinet/tcp_stacks/rack_bbr_common.c | 4 -
sys/netinet/tcp_subr.c | 8 --
sys/netinet/tcp_timer.c | 2 -
sys/netinet/tcp_timewait.c | 4 -
sys/netinet/tcp_usrreq.c | 63 ---------
usr.bin/systat/netstat.c | 1 -
24 files changed, 55 insertions(+), 638 deletions(-)
diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
index be9f81dd3cb0..30f129d66487 100644
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -52,6 +52,9 @@
# xargs -n1 | sort | uniq -d;
# done
+# 20221214: TCPDEBUG removed
+OLD_FILES+=usr/include/netinet/tcp_debug.h
+
# 20221213: remove sync serial drivers and utilities
OLD_FILES+=sbin/sconfig
OLD_FILES+=usr/share/man/man4/ce.4
diff --git a/sys/conf/NOTES b/sys/conf/NOTES
index 1c763b2a2ceb..dede651eaf9f 100644
--- a/sys/conf/NOTES
+++ b/sys/conf/NOTES
@@ -1009,10 +1009,6 @@ device wg
#
# PF_DEFAULT_TO_DROP causes the default pf(4) rule to deny everything.
#
-# TCPDEBUG enables code which keeps traces of the TCP state machine
-# for sockets with the SO_DEBUG option set, which can then be examined
-# using the trpt(8) utility.
-#
# TCPPCAP enables code which keeps the last n packets sent and received
# on a TCP socket.
#
@@ -1037,7 +1033,6 @@ options IPFILTER_LOOKUP #ipfilter pools
options IPFILTER_DEFAULT_BLOCK #block all packets by default
options IPSTEALTH #support for stealth forwarding
options PF_DEFAULT_TO_DROP #drop everything by default
-options TCPDEBUG
options TCPPCAP
options TCP_BLACKBOX
options TCP_HHOOK
diff --git a/sys/conf/files b/sys/conf/files
index 60c5c749c40b..943817f282aa 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -4387,7 +4387,6 @@ netinet/sctp_timer.c optional inet sctp | inet6 sctp
netinet/sctp_usrreq.c optional inet sctp | inet6 sctp
netinet/sctputil.c optional inet sctp | inet6 sctp
netinet/siftr.c optional inet siftr alq | inet6 siftr alq
-netinet/tcp_debug.c optional tcpdebug
netinet/tcp_ecn.c optional inet | inet6
netinet/tcp_fastopen.c optional inet tcp_rfc7413 | inet6 tcp_rfc7413
netinet/tcp_hostcache.c optional inet | inet6
diff --git a/sys/conf/options b/sys/conf/options
index 00019b1c2e5c..85f456555447 100644
--- a/sys/conf/options
+++ b/sys/conf/options
@@ -465,7 +465,6 @@ ROUTETABLES opt_route.h
FIB_ALGO opt_route.h
RSS opt_rss.h
SLIP_IFF_OPTS opt_slip.h
-TCPDEBUG
TCPPCAP opt_global.h
SIFTR
TCP_BLACKBOX opt_global.h
diff --git a/sys/modules/tcp/bbr/Makefile b/sys/modules/tcp/bbr/Makefile
index b94ffd0b518e..72c44f22efec 100644
--- a/sys/modules/tcp/bbr/Makefile
+++ b/sys/modules/tcp/bbr/Makefile
@@ -11,7 +11,6 @@ SRCS= bbr.c sack_filter.c rack_bbr_common.c
SRCS+= opt_inet.h opt_inet6.h opt_ipsec.h
SRCS+= opt_kern_tls.h
SRCS+= opt_ratelimit.h
-SRCS+= opt_tcpdebug.h
#
# Enable full debugging
diff --git a/sys/modules/tcp/rack/Makefile b/sys/modules/tcp/rack/Makefile
index ba9dca32babe..68ce40cc074e 100644
--- a/sys/modules/tcp/rack/Makefile
+++ b/sys/modules/tcp/rack/Makefile
@@ -11,7 +11,6 @@ SRCS= rack.c sack_filter.c rack_bbr_common.c
SRCS+= opt_inet.h opt_inet6.h opt_ipsec.h
SRCS+= opt_kern_tls.h
SRCS+= opt_ratelimit.h
-SRCS+= opt_tcpdebug.h
#
# Enable full debugging
diff --git a/sys/netinet/in_kdtrace.h b/sys/netinet/in_kdtrace.h
index ff0430db2faf..fa88dc437fe7 100644
--- a/sys/netinet/in_kdtrace.h
+++ b/sys/netinet/in_kdtrace.h
@@ -78,4 +78,55 @@ SDT_PROBE_DECLARE(udp, , , send);
SDT_PROBE_DECLARE(udplite, , , receive);
SDT_PROBE_DECLARE(udplite, , , send);
+/*
+ * These constants originate from the 4.4BSD sys/protosw.h. They lost
+ * their initial purpose in 2c37256e5a59, when single pr_usrreq method
+ * was split into multiple methods. However, they were used by TCPDEBUG,
+ * a feature barely used, but it kept them in the tree for many years.
+ * In 5d06879adb95 DTrace probes started to use them. Note that they
+ * are not documented in dtrace_tcp(4), so they are likely to be
+ * eventually renamed to something better and extended/trimmed.
+ */
+#define PRU_ATTACH 0 /* attach protocol to up */
+#define PRU_DETACH 1 /* detach protocol from up */
+#define PRU_BIND 2 /* bind socket to address */
+#define PRU_LISTEN 3 /* listen for connection */
+#define PRU_CONNECT 4 /* establish connection to peer */
+#define PRU_ACCEPT 5 /* accept connection from peer */
+#define PRU_DISCONNECT 6 /* disconnect from peer */
+#define PRU_SHUTDOWN 7 /* won't send any more data */
+#define PRU_RCVD 8 /* have taken data; more room now */
+#define PRU_SEND 9 /* send this data */
+#define PRU_ABORT 10 /* abort (fast DISCONNECT, DETATCH) */
+#define PRU_CONTROL 11 /* control operations on protocol */
+#define PRU_SENSE 12 /* return status into m */
+#define PRU_RCVOOB 13 /* retrieve out of band data */
+#define PRU_SENDOOB 14 /* send out of band data */
+#define PRU_SOCKADDR 15 /* fetch socket's address */
+#define PRU_PEERADDR 16 /* fetch peer's address */
+#define PRU_CONNECT2 17 /* connect two sockets */
+/* begin for protocols internal use */
+#define PRU_FASTTIMO 18 /* 200ms timeout */
+#define PRU_SLOWTIMO 19 /* 500ms timeout */
+#define PRU_PROTORCV 20 /* receive from below */
+#define PRU_PROTOSEND 21 /* send to below */
+/* end for protocol's internal use */
+#define PRU_SEND_EOF 22 /* send and close */
+#define PRU_SOSETLABEL 23 /* MAC label change */
+#define PRU_CLOSE 24 /* socket close */
+#define PRU_FLUSH 25 /* flush the socket */
+#define PRU_NREQ 25
+
+#ifdef PRUREQUESTS
+const char *prurequests[] = {
+ "ATTACH", "DETACH", "BIND", "LISTEN",
+ "CONNECT", "ACCEPT", "DISCONNECT", "SHUTDOWN",
+ "RCVD", "SEND", "ABORT", "CONTROL",
+ "SENSE", "RCVOOB", "SENDOOB", "SOCKADDR",
+ "PEERADDR", "CONNECT2", "FASTTIMO", "SLOWTIMO",
+ "PROTORCV", "PROTOSEND", "SEND_EOF", "SOSETLABEL",
+ "CLOSE", "FLUSH",
+};
+#endif
+
#endif
diff --git a/sys/netinet/tcp_debug.c b/sys/netinet/tcp_debug.c
deleted file mode 100644
index e00dc095b01f..000000000000
--- a/sys/netinet/tcp_debug.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
- * Copyright (c) 1982, 1986, 1993
- * The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)tcp_debug.c 8.1 (Berkeley) 6/10/93
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include "opt_inet.h"
-#include "opt_inet6.h"
-#include "opt_tcpdebug.h"
-
-#ifdef TCPDEBUG
-/* load symbolic names */
-#define PRUREQUESTS
-#define TCPSTATES
-#define TCPTIMERS
-#define TANAMES
-#endif
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/lock.h>
-#include <sys/mbuf.h>
-#include <sys/mutex.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-#include <netinet/in_pcb.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-#ifdef INET6
-#include <netinet/ip6.h>
-#endif
-#include <netinet/ip_var.h>
-#include <netinet/tcp.h>
-#include <netinet/tcp_fsm.h>
-#include <netinet/tcp_timer.h>
-#include <netinet/tcp_var.h>
-#include <netinet/tcpip.h>
-#include <netinet/tcp_debug.h>
-
-#ifdef TCPDEBUG
-static int tcpconsdebug = 0;
-#endif
-
-/*
- * Global ring buffer of TCP debugging state. Each entry captures a snapshot
- * of TCP connection state at any given moment. tcp_debx addresses at the
- * next available slot. There is no explicit export of this data structure;
- * it will be read via /dev/kmem by debugging tools.
- */
-static struct tcp_debug tcp_debug[TCP_NDEBUG];
-static int tcp_debx;
-
-/*
- * All global state is protected by tcp_debug_mtx; tcp_trace() is split into
- * two parts, one of which saves connection and other state into the global
- * array (locked by tcp_debug_mtx).
- */
-struct mtx tcp_debug_mtx;
-MTX_SYSINIT(tcp_debug_mtx, &tcp_debug_mtx, "tcp_debug_mtx", MTX_DEF);
-
-/*
- * Save TCP state at a given moment; optionally, both tcpcb and TCP packet
- * header state will be saved.
- */
-void
-tcp_trace(short act, short ostate, struct tcpcb *tp, void *ipgen,
- struct tcphdr *th, int req)
-{
-#ifdef INET6
- int isipv6;
-#endif /* INET6 */
- tcp_seq seq, ack;
- int len, flags;
- struct tcp_debug *td;
-
- mtx_lock(&tcp_debug_mtx);
- td = &tcp_debug[tcp_debx++];
- if (tcp_debx == TCP_NDEBUG)
- tcp_debx = 0;
- bzero(td, sizeof(*td));
-#ifdef INET6
- isipv6 = (ipgen != NULL && ((struct ip *)ipgen)->ip_v == 6) ? 1 : 0;
-#endif /* INET6 */
- td->td_family =
-#ifdef INET6
- (isipv6 != 0) ? AF_INET6 :
-#endif
- AF_INET;
-#ifdef INET
- td->td_time = iptime();
-#endif
- td->td_act = act;
- td->td_ostate = ostate;
- td->td_tcb = (caddr_t)tp;
- if (tp != NULL)
- td->td_cb = *tp;
- if (ipgen != NULL) {
- switch (td->td_family) {
-#ifdef INET
- case AF_INET:
- bcopy(ipgen, &td->td_ti.ti_i, sizeof(td->td_ti.ti_i));
- break;
-#endif
-#ifdef INET6
- case AF_INET6:
- bcopy(ipgen, td->td_ip6buf, sizeof(td->td_ip6buf));
- break;
-#endif
- }
- }
- if (th != NULL) {
- switch (td->td_family) {
-#ifdef INET
- case AF_INET:
- td->td_ti.ti_t = *th;
- break;
-#endif
-#ifdef INET6
- case AF_INET6:
- td->td_ti6.th = *th;
- break;
-#endif
- }
- }
- td->td_req = req;
- mtx_unlock(&tcp_debug_mtx);
-#ifdef TCPDEBUG
- if (tcpconsdebug == 0)
- return;
- if (tp != NULL)
- printf("%p %s:", tp, tcpstates[ostate]);
- else
- printf("???????? ");
- printf("%s ", tanames[act]);
- switch (act) {
- case TA_INPUT:
- case TA_OUTPUT:
- case TA_DROP:
- if (ipgen == NULL || th == NULL)
- break;
- seq = th->th_seq;
- ack = th->th_ack;
- len =
-#ifdef INET6
- isipv6 ? ntohs(((struct ip6_hdr *)ipgen)->ip6_plen) :
-#endif
- ntohs(((struct ip *)ipgen)->ip_len);
- if (act == TA_OUTPUT) {
- seq = ntohl(seq);
- ack = ntohl(ack);
- }
- if (act == TA_OUTPUT)
- len -= sizeof (struct tcphdr);
- if (len)
- printf("[%x..%x)", seq, seq+len);
- else
- printf("%x", seq);
- printf("@%x, urp=%x", ack, th->th_urp);
- flags = tcp_get_flags(th);
- if (flags) {
- char *cp = "<";
-#define pf(f) { \
- if (tcp_get_flags(th) & TH_##f) { \
- printf("%s%s", cp, #f); \
- cp = ","; \
- } \
-}
- pf(SYN); pf(ACK); pf(FIN); pf(RST); pf(PUSH); pf(URG);
- printf(">");
- }
- break;
-
- case TA_USER:
- printf("%s", prurequests[req&0xff]);
- if ((req & 0xff) == PRU_SLOWTIMO)
- printf("<%s>", tcptimers[req>>8]);
- break;
- }
- if (tp != NULL)
- printf(" -> %s", tcpstates[tp->t_state]);
- /* print out internal state of tp !?! */
- printf("\n");
- if (tp == NULL)
- return;
- printf(
- "\trcv_(nxt,wnd,up) (%lx,%lx,%lx) snd_(una,nxt,max) (%lx,%lx,%lx)\n",
- (u_long)tp->rcv_nxt, (u_long)tp->rcv_wnd, (u_long)tp->rcv_up,
- (u_long)tp->snd_una, (u_long)tp->snd_nxt, (u_long)tp->snd_max);
- printf("\tsnd_(wl1,wl2,wnd) (%lx,%lx,%lx)\n",
- (u_long)tp->snd_wl1, (u_long)tp->snd_wl2, (u_long)tp->snd_wnd);
-#endif /* TCPDEBUG */
-}
diff --git a/sys/netinet/tcp_debug.h b/sys/netinet/tcp_debug.h
deleted file mode 100644
index 6bb296ea0e52..000000000000
--- a/sys/netinet/tcp_debug.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
- * Copyright (c) 1982, 1986, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)tcp_debug.h 8.1 (Berkeley) 6/10/93
- * $FreeBSD$
- */
-
-#ifndef _NETINET_TCP_DEBUG_H_
-#define _NETINET_TCP_DEBUG_H_
-
-struct tcp_debug {
- uint32_t td_time; /* network format */
- short td_act;
- short td_ostate;
- caddr_t td_tcb;
- int td_family;
- /*
- * Co-existense of td_ti and td_ti6 below is ugly, but it is necessary
- * to achieve backword compatibility to some extent.
- */
- struct tcpiphdr td_ti;
- struct {
-#define IP6_HDR_LEN 40 /* sizeof(struct ip6_hdr) */
-#if !defined(_KERNEL) && defined(INET6)
- struct ip6_hdr ip6;
-#else
- u_char ip6buf[IP6_HDR_LEN];
-#endif
- struct tcphdr th;
- } td_ti6;
-#define td_ip6buf td_ti6.ip6buf
- short td_req;
- struct tcpcb td_cb;
-};
-
-#define TA_INPUT 0
-#define TA_OUTPUT 1
-#define TA_USER 2
-#define TA_RESPOND 3
-#define TA_DROP 4
-
-#ifdef TANAMES
-static const char *tanames[] =
- { "input", "output", "user", "respond", "drop" };
-#endif
-
-#define TCP_NDEBUG 100
-
-/* These older constants are still present in order to support TCP debugging. */
-#define PRU_ATTACH 0 /* attach protocol to up */
-#define PRU_DETACH 1 /* detach protocol from up */
-#define PRU_BIND 2 /* bind socket to address */
-#define PRU_LISTEN 3 /* listen for connection */
-#define PRU_CONNECT 4 /* establish connection to peer */
-#define PRU_ACCEPT 5 /* accept connection from peer */
-#define PRU_DISCONNECT 6 /* disconnect from peer */
-#define PRU_SHUTDOWN 7 /* won't send any more data */
-#define PRU_RCVD 8 /* have taken data; more room now */
-#define PRU_SEND 9 /* send this data */
-#define PRU_ABORT 10 /* abort (fast DISCONNECT, DETATCH) */
-#define PRU_CONTROL 11 /* control operations on protocol */
-#define PRU_SENSE 12 /* return status into m */
-#define PRU_RCVOOB 13 /* retrieve out of band data */
-#define PRU_SENDOOB 14 /* send out of band data */
-#define PRU_SOCKADDR 15 /* fetch socket's address */
-#define PRU_PEERADDR 16 /* fetch peer's address */
-#define PRU_CONNECT2 17 /* connect two sockets */
-/* begin for protocols internal use */
-#define PRU_FASTTIMO 18 /* 200ms timeout */
-#define PRU_SLOWTIMO 19 /* 500ms timeout */
-#define PRU_PROTORCV 20 /* receive from below */
-#define PRU_PROTOSEND 21 /* send to below */
-/* end for protocol's internal use */
-#define PRU_SEND_EOF 22 /* send and close */
-#define PRU_SOSETLABEL 23 /* MAC label change */
-#define PRU_CLOSE 24 /* socket close */
-#define PRU_FLUSH 25 /* flush the socket */
-#define PRU_NREQ 25
-
-#ifdef PRUREQUESTS
-const char *prurequests[] = {
- "ATTACH", "DETACH", "BIND", "LISTEN",
- "CONNECT", "ACCEPT", "DISCONNECT", "SHUTDOWN",
- "RCVD", "SEND", "ABORT", "CONTROL",
- "SENSE", "RCVOOB", "SENDOOB", "SOCKADDR",
- "PEERADDR", "CONNECT2", "FASTTIMO", "SLOWTIMO",
- "PROTORCV", "PROTOSEND", "SEND_EOF", "SOSETLABEL",
- "CLOSE", "FLUSH",
-};
-#endif
-
-#endif /* !_NETINET_TCP_DEBUG_H_ */
diff --git a/sys/netinet/tcp_ecn.c b/sys/netinet/tcp_ecn.c
index 5b19ed93225f..579c0b407ae1 100644
--- a/sys/netinet/tcp_ecn.c
+++ b/sys/netinet/tcp_ecn.c
@@ -61,7 +61,6 @@ __FBSDID("$FreeBSD$");
#include "opt_inet.h"
#include "opt_inet6.h"
-#include "opt_tcpdebug.h"
#include <sys/param.h>
#include <sys/systm.h>
diff --git a/sys/netinet/tcp_hpts.c b/sys/netinet/tcp_hpts.c
index d3e923406784..5731e9a81e19 100644
--- a/sys/netinet/tcp_hpts.c
+++ b/sys/netinet/tcp_hpts.c
@@ -29,7 +29,6 @@ __FBSDID("$FreeBSD$");
#include "opt_inet.h"
#include "opt_inet6.h"
#include "opt_rss.h"
-#include "opt_tcpdebug.h"
/**
* Some notes about usage.
@@ -157,9 +156,6 @@ __FBSDID("$FreeBSD$");
#include <netinet/tcp_hpts.h>
#include <netinet/tcp_log_buf.h>
-#ifdef tcpdebug
-#include <netinet/tcp_debug.h>
-#endif /* tcpdebug */
#ifdef tcp_offload
#include <netinet/tcp_offload.h>
#endif
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index 96812afd3b37..5141903522bf 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -55,7 +55,6 @@ __FBSDID("$FreeBSD$");
#include "opt_inet.h"
#include "opt_inet6.h"
#include "opt_ipsec.h"
-#include "opt_tcpdebug.h"
#include <sys/param.h>
#include <sys/arb.h>
@@ -117,7 +116,6 @@ __FBSDID("$FreeBSD$");
#include <netinet/tcp_pcap.h>
#endif
#include <netinet/tcp_syncache.h>
-#include <netinet/tcp_debug.h>
#ifdef TCP_OFFLOAD
#include <netinet/tcp_offload.h>
#endif
@@ -632,15 +630,6 @@ tcp_input_with_port(struct mbuf **mp, int *offp, int proto, uint16_t port)
#endif /* INET6 */
struct tcpopt to; /* options in this segment */
char *s = NULL; /* address and port logging */
-#ifdef TCPDEBUG
- /*
- * The size of tcp_saveipgen must be the size of the max ip header,
- * now IPv6.
- */
- u_char tcp_saveipgen[IP6_HDR_LEN];
- struct tcphdr tcp_savetcp;
- short ostate = 0;
-#endif
NET_EPOCH_ASSERT();
@@ -1021,18 +1010,6 @@ findpcb:
#endif
so = inp->inp_socket;
KASSERT(so != NULL, ("%s: so == NULL", __func__));
-#ifdef TCPDEBUG
- if (so->so_options & SO_DEBUG) {
- ostate = tp->t_state;
-#ifdef INET6
- if (isipv6) {
- bcopy((char *)ip6, (char *)tcp_saveipgen, sizeof(*ip6));
- } else
-#endif
- bcopy((char *)ip, (char *)tcp_saveipgen, sizeof(*ip));
- tcp_savetcp = *th;
- }
-#endif /* TCPDEBUG */
/*
* When the socket is accepting connections (the INPCB is in LISTEN
* state) we look into the SYN cache if this is a new connection
@@ -1344,11 +1321,6 @@ tfo_socket_result:
* SYN appears to be valid. Create compressed TCP state
* for syncache.
*/
-#ifdef TCPDEBUG
- if (so->so_options & SO_DEBUG)
- tcp_trace(TA_INPUT, ostate, tp,
- (void *)tcp_saveipgen, &tcp_savetcp, 0);
-#endif
TCP_PROBE3(debug__input, tp, th, m);
tcp_dooptions(&to, optp, optlen, TO_SYN);
if ((so = syncache_add(&inc, &to, th, inp, so, m, NULL, NULL,
@@ -1528,15 +1500,6 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so,
int tfo_syn;
u_int maxseg;
-#ifdef TCPDEBUG
- /*
- * The size of tcp_saveipgen must be the size of the max ip header,
- * now IPv6.
- */
- u_char tcp_saveipgen[IP6_HDR_LEN];
- struct tcphdr tcp_savetcp;
- short ostate = 0;
-#endif
thflags = tcp_get_flags(th);
tp->sackhint.last_sack_ack = 0;
sack_changed = 0;
@@ -1856,12 +1819,6 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so,
* are ready to send, let tcp_output
* decide between more output or persist.
*/
-#ifdef TCPDEBUG
- if (so->so_options & SO_DEBUG)
- tcp_trace(TA_INPUT, ostate, tp,
- (void *)tcp_saveipgen,
- &tcp_savetcp, 0);
-#endif
TCP_PROBE3(debug__input, tp, th, m);
/*
* Clear t_acktime if remote side has ACKd
@@ -1918,11 +1875,6 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so,
tp->rcv_up = tp->rcv_nxt;
TCPSTAT_ADD(tcps_rcvpack, nsegs);
TCPSTAT_ADD(tcps_rcvbyte, tlen);
-#ifdef TCPDEBUG
- if (so->so_options & SO_DEBUG)
- tcp_trace(TA_INPUT, ostate, tp,
- (void *)tcp_saveipgen, &tcp_savetcp, 0);
-#endif
TCP_PROBE3(debug__input, tp, th, m);
newsize = tcp_autorcvbuf(m, th, so, tp, tlen);
@@ -3298,11 +3250,6 @@ dodata: /* XXX */
return;
}
}
-#ifdef TCPDEBUG
- if (so->so_options & SO_DEBUG)
- tcp_trace(TA_INPUT, ostate, tp, (void *)tcp_saveipgen,
- &tcp_savetcp, 0);
-#endif
TCP_PROBE3(debug__input, tp, th, m);
/*
@@ -3344,11 +3291,6 @@ dropafterack:
tcp_log_end_status(tp, TCP_EI_STATUS_RST_IN_FRONT);
goto dropwithreset;
}
-#ifdef TCPDEBUG
- if (so->so_options & SO_DEBUG)
- tcp_trace(TA_DROP, ostate, tp, (void *)tcp_saveipgen,
- &tcp_savetcp, 0);
-#endif
TCP_PROBE3(debug__input, tp, th, m);
tp->t_flags |= TF_ACKNOW;
(void) tcp_output(tp);
@@ -3368,11 +3310,6 @@ drop:
/*
* Drop space held by incoming segment and return.
*/
-#ifdef TCPDEBUG
- if (tp == NULL || (inp->inp_socket->so_options & SO_DEBUG))
- tcp_trace(TA_DROP, ostate, tp, (void *)tcp_saveipgen,
- &tcp_savetcp, 0);
-#endif
TCP_PROBE3(debug__input, tp, th, m);
if (tp != NULL) {
INP_WUNLOCK(inp);
diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c
index aa4bfef9a9ff..e0e8dfeb46ef 100644
--- a/sys/netinet/tcp_output.c
+++ b/sys/netinet/tcp_output.c
@@ -38,7 +38,6 @@ __FBSDID("$FreeBSD$");
#include "opt_inet6.h"
#include "opt_ipsec.h"
#include "opt_kern_tls.h"
-#include "opt_tcpdebug.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -93,9 +92,6 @@ __FBSDID("$FreeBSD$");
#ifdef TCPPCAP
#include <netinet/tcp_pcap.h>
#endif
-#ifdef TCPDEBUG
-#include <netinet/tcp_debug.h>
-#endif
#ifdef TCP_OFFLOAD
#include <netinet/tcp_offload.h>
#endif
@@ -206,9 +202,6 @@ tcp_default_output(struct tcpcb *tp)
u_int if_hw_tsomaxsegsize = 0;
struct mbuf *m;
struct ip *ip = NULL;
-#ifdef TCPDEBUG
- struct ipovly *ipov = NULL;
-#endif
struct tcphdr *th;
u_char opt[TCP_MAXOLEN];
unsigned ipoptlen, optlen, hdrlen, ulen;
@@ -1175,9 +1168,6 @@ send:
#endif /* INET6 */
{
ip = mtod(m, struct ip *);
-#ifdef TCPDEBUG
- ipov = (struct ipovly *)ip;
-#endif
if (tp->t_port) {
udp = (struct udphdr *)((caddr_t)ip + sizeof(struct ip));
udp->uh_sport = htons(V_tcp_udp_tunneling_port);
@@ -1419,26 +1409,6 @@ send:
hhook_run_tcp_est_out(tp, th, &to, len, tso);
#endif
-#ifdef TCPDEBUG
- /*
- * Trace.
- */
- if (so->so_options & SO_DEBUG) {
- u_short save = 0;
-#ifdef INET6
- if (!isipv6)
-#endif
- {
- save = ipov->ih_len;
- ipov->ih_len = htons(m->m_pkthdr.len /* - hdrlen + (th->th_off << 2) */);
- }
- tcp_trace(TA_OUTPUT, tp->t_state, tp, mtod(m, void *), th, 0);
-#ifdef INET6
- if (!isipv6)
-#endif
- ipov->ih_len = save;
- }
-#endif /* TCPDEBUG */
TCP_PROBE3(debug__output, tp, th, m);
/* We're getting ready to send; log now. */
diff --git a/sys/netinet/tcp_ratelimit.c b/sys/netinet/tcp_ratelimit.c
index f6567d159b36..dc207d10311c 100644
--- a/sys/netinet/tcp_ratelimit.c
+++ b/sys/netinet/tcp_ratelimit.c
@@ -36,7 +36,6 @@ __FBSDID("$FreeBSD$");
#include "opt_inet.h"
#include "opt_inet6.h"
#include "opt_ipsec.h"
-#include "opt_tcpdebug.h"
#include "opt_ratelimit.h"
#include <sys/param.h>
#include <sys/kernel.h>
diff --git a/sys/netinet/tcp_reass.c b/sys/netinet/tcp_reass.c
index 0a620d173d88..77d1d9fa31bf 100644
--- a/sys/netinet/tcp_reass.c
+++ b/sys/netinet/tcp_reass.c
@@ -36,7 +36,6 @@ __FBSDID("$FreeBSD$");
#include "opt_inet.h"
#include "opt_inet6.h"
-#include "opt_tcpdebug.h"
/* For debugging we want counters and BB logging */
/* #define TCP_REASS_COUNTERS 1 */
@@ -81,9 +80,6 @@ __FBSDID("$FreeBSD$");
#include <netinet/tcp_hpts.h>
#endif
#include <netinet/tcpip.h>
-#ifdef TCPDEBUG
-#include <netinet/tcp_debug.h>
-#endif /* TCPDEBUG */
#define TCP_R_LOG_ADD 1
#define TCP_R_LOG_LIMIT_REACHED 2
diff --git a/sys/netinet/tcp_sack.c b/sys/netinet/tcp_sack.c
index 23ebb346ff5e..558773f91228 100644
--- a/sys/netinet/tcp_sack.c
+++ b/sys/netinet/tcp_sack.c
@@ -77,7 +77,6 @@ __FBSDID("$FreeBSD$");
#include "opt_inet.h"
#include "opt_inet6.h"
-#include "opt_tcpdebug.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -119,9 +118,6 @@ __FBSDID("$FreeBSD$");
#include <netinet/tcp_var.h>
#include <netinet/tcpip.h>
#include <netinet/cc/cc.h>
-#ifdef TCPDEBUG
-#include <netinet/tcp_debug.h>
-#endif /* TCPDEBUG */
#include <machine/in_cksum.h>
diff --git a/sys/netinet/tcp_stacks/bbr.c b/sys/netinet/tcp_stacks/bbr.c
index 5a1e3de4c416..4f74fdd1dd76 100644
--- a/sys/netinet/tcp_stacks/bbr.c
+++ b/sys/netinet/tcp_stacks/bbr.c
@@ -36,7 +36,6 @@ __FBSDID("$FreeBSD$");
#include "opt_inet.h"
#include "opt_inet6.h"
#include "opt_ipsec.h"
-#include "opt_tcpdebug.h"
#include "opt_ratelimit.h"
#include <sys/param.h>
#include <sys/arb.h>
@@ -99,9 +98,6 @@ __FBSDID("$FreeBSD$");
#include <netinet/tcp_log_buf.h>
#include <netinet/tcp_ratelimit.h>
#include <netinet/tcp_lro.h>
-#ifdef TCPDEBUG
-#include <netinet/tcp_debug.h>
-#endif /* TCPDEBUG */
#ifdef TCP_OFFLOAD
#include <netinet/tcp_offload.h>
#endif
@@ -8409,16 +8405,7 @@ bbr_do_fastnewdata(struct mbuf *m, struct tcphdr *th, struct socket *so,
#ifdef NETFLIX_SB_LIMITS
u_int mcnt, appended;
#endif
-#ifdef TCPDEBUG
- /*
- * The size of tcp_saveipgen must be the size of the max ip header,
- * now IPv6.
- */
- u_char tcp_saveipgen[IP6_HDR_LEN];
- struct tcphdr tcp_savetcp;
- short ostate = 0;
-#endif
/* On the hpts and we would have called output */
bbr = (struct tcp_bbr *)tp->t_fb_ptr;
@@ -8493,11 +8480,6 @@ bbr_do_fastnewdata(struct mbuf *m, struct tcphdr *th, struct socket *so,
tp->rcv_up = tp->rcv_nxt;
KMOD_TCPSTAT_ADD(tcps_rcvpack, (int)nsegs);
KMOD_TCPSTAT_ADD(tcps_rcvbyte, tlen);
-#ifdef TCPDEBUG
- if (so->so_options & SO_DEBUG)
- tcp_trace(TA_INPUT, ostate, tp,
- (void *)tcp_saveipgen, &tcp_savetcp, 0);
-#endif
newsize = tcp_autorcvbuf(m, th, so, tp, tlen);
/* Add data to socket buffer. */
@@ -8555,16 +8537,6 @@ bbr_fastack(struct mbuf *m, struct tcphdr *th, struct socket *so,
int32_t acked;
uint16_t nsegs;
uint32_t sack_changed;
-#ifdef TCPDEBUG
- /*
- * The size of tcp_saveipgen must be the size of the max ip header,
- * now IPv6.
- */
- u_char tcp_saveipgen[IP6_HDR_LEN];
- struct tcphdr tcp_savetcp;
- short ostate = 0;
-
-#endif
uint32_t prev_acked = 0;
struct tcp_bbr *bbr;
@@ -8704,14 +8676,8 @@ bbr_fastack(struct mbuf *m, struct tcphdr *th, struct socket *so,
* value. If process is waiting for space, wakeup/selwakeup/signal.
* If data are ready to send, let tcp_output decide between more
* output or persist.
+ * Wake up the socket if we have room to write more.
*/
-#ifdef TCPDEBUG
- if (so->so_options & SO_DEBUG)
- tcp_trace(TA_INPUT, ostate, tp,
- (void *)tcp_saveipgen,
- &tcp_savetcp, 0);
-#endif
- /* Wake up the socket if we have room to write more */
sowwakeup(so);
if (tp->snd_una == tp->snd_max) {
/* Nothing left outstanding */
@@ -11847,9 +11813,6 @@ bbr_output_wtime(struct tcpcb *tp, const struct timeval *tv)
uint32_t if_hw_tsomaxsegsize = 0;
uint32_t if_hw_tsomax = 0;
struct ip *ip = NULL;
-#ifdef TCPDEBUG
- struct ipovly *ipov = NULL;
-#endif
struct tcp_bbr *bbr;
struct tcphdr *th;
struct udphdr *udp = NULL;
@@ -13298,9 +13261,6 @@ send:
#endif /* INET6 */
{
ip = mtod(m, struct ip *);
-#ifdef TCPDEBUG
- ipov = (struct ipovly *)ip;
-#endif
if (tp->t_port) {
udp = (struct udphdr *)((caddr_t)ip + sizeof(struct ip));
udp->uh_sport = htons(V_tcp_udp_tunneling_port);
@@ -13511,28 +13471,6 @@ send:
/* Run HHOOK_TC_ESTABLISHED_OUT helper hooks. */
hhook_run_tcp_est_out(tp, th, &to, len, tso);
#endif
-#ifdef TCPDEBUG
- /*
- * Trace.
- */
- if (so->so_options & SO_DEBUG) {
- u_short save = 0;
-
-#ifdef INET6
- if (!isipv6)
-#endif
- {
- save = ipov->ih_len;
- ipov->ih_len = htons(m->m_pkthdr.len /* - hdrlen +
- * (th->th_off << 2) */ );
- }
- tcp_trace(TA_OUTPUT, tp->t_state, tp, mtod(m, void *), th, 0);
-#ifdef INET6
- if (!isipv6)
-#endif
- ipov->ih_len = save;
- }
-#endif /* TCPDEBUG */
/* Log to the black box */
if (tp->t_logstate != TCP_LOG_STATE_OFF) {
diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c
*** 587 LINES SKIPPED ***