git: 5344772af985 - stable/14 - tcp: add some debug output
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 17 Apr 2024 14:01:40 UTC
The branch stable/14 has been updated by tuexen:
URL: https://cgit.FreeBSD.org/src/commit/?id=5344772af985cf95e48cffacdcd2cc19f8cdfbf5
commit 5344772af985cf95e48cffacdcd2cc19f8cdfbf5
Author: Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2024-04-07 20:41:24 +0000
Commit: Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2024-04-17 14:01:12 +0000
tcp: add some debug output
Also log, when dropping text or FIN after having received a FIN.
This is the intended behavior described in RFC 9293.
A follow-up patch will enforce this behavior for the base stack
and the RACK stack.
Reviewed by: rscheff
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D44669
(cherry picked from commit e8c149ab85c7834f76325864f22ca89298e65f75)
---
sys/netinet/tcp_input.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index 53fa5913311a..dbc2de17785f 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -3251,6 +3251,35 @@ dodata: /* XXX */
len = so->so_rcv.sb_hiwat;
#endif
} else {
+ if ((s = tcp_log_addrs(inc, th, NULL, NULL))) {
+ if (tlen > 0) {
+ if ((thflags & TH_FIN) != 0) {
+ log(LOG_DEBUG, "%s; %s: %s: "
+ "Received %d bytes of data and FIN "
+ "after having received a FIN, "
+ "just dropping both\n",
+ s, __func__,
+ tcpstates[tp->t_state], tlen);
+ } else {
+ log(LOG_DEBUG, "%s; %s: %s: "
+ "Received %d bytes of data "
+ "after having received a FIN, "
+ "just dropping it\n",
+ s, __func__,
+ tcpstates[tp->t_state], tlen);
+ }
+ } else {
+ if ((thflags & TH_FIN) != 0) {
+ log(LOG_DEBUG, "%s; %s: %s: "
+ "Received FIN "
+ "after having received a FIN, "
+ "just dropping it\n",
+ s, __func__,
+ tcpstates[tp->t_state]);
+ }
+ }
+ free(s, M_TCPLOG);
+ }
m_freem(m);
thflags &= ~TH_FIN;
}