git: 232d323ef227 - main - TCP syncache: enhance KASSERT output
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 14 Feb 2022 00:07:58 UTC
The branch main has been updated by bz:
URL: https://cgit.FreeBSD.org/src/commit/?id=232d323ef227109acce37f5a0d62492673666ee2
commit 232d323ef227109acce37f5a0d62492673666ee2
Author: Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2022-02-08 23:47:15 +0000
Commit: Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2022-02-14 00:03:20 +0000
TCP syncache: enhance KASSERT output
Improve the "syncache: mbuf too small" assertion message with various
variables (some not actually needed) but enough that it will be obvious
if (a) we use IPv4 or IPv6, (b) if UDP tunneling is on, (c) what
max_linkhdr is, and (d) what MHLEN is.
This should help diagnostics in the future.
The case was hit with wireless drivers setting a large ic_headroom
and using IPv6.
Reviewed by: gallatin, tuexen, rscheff
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D34217
---
sys/netinet/tcp_syncache.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
index ed4adda59c22..ed5981bf85d7 100644
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -1848,7 +1848,9 @@ syncache_respond(struct syncache *sc, const struct mbuf *m0, int flags)
/* XXX: Assume that the entire packet will fit in a header mbuf. */
KASSERT(max_linkhdr + tlen + TCP_MAXOLEN <= MHLEN,
- ("syncache: mbuf too small"));
+ ("syncache: mbuf too small: hlen %u, sc_port %u, max_linkhdr %d + "
+ "tlen %d + TCP_MAXOLEN %ju <= MHLEN %d", hlen, sc->sc_port,
+ max_linkhdr, tlen, (uintmax_t)TCP_MAXOLEN, MHLEN));
/* Create the IP+TCP header from scratch. */
m = m_gethdr(M_NOWAIT, MT_DATA);