git: 423b1e36a64f - stable/13 - tcp: improve BBLog for output events when using the FreeBSD stack
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 01 Feb 2023 23:33:38 UTC
The branch stable/13 has been updated by tuexen:
URL: https://cgit.FreeBSD.org/src/commit/?id=423b1e36a64f187f6bf2eea01c8864d24cc40658
commit 423b1e36a64f187f6bf2eea01c8864d24cc40658
Author: Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2022-08-08 11:07:10 +0000
Commit: Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2023-02-01 23:33:06 +0000
tcp: improve BBLog for output events when using the FreeBSD stack
Put the return value of ip_output()/ip6_output in the output event
instead of adding another one in case of an error. This improves
consistency with other similar places.
Reviewed by: rscheff
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D36085
(cherry picked from commit bd30a1216e03e14cfaa7e91b1fc72ad76e9cd240)
---
sys/netinet/tcp_output.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c
index a30f8eab389d..fea54cdcc5cb 100644
--- a/sys/netinet/tcp_output.c
+++ b/sys/netinet/tcp_output.c
@@ -219,6 +219,7 @@ tcp_output(struct tcpcb *tp)
int tso, mtu;
struct tcpopt to;
struct udphdr *udp = NULL;
+ struct tcp_log_buffer *lgb;
unsigned int wanted_cookie = 0;
unsigned int dont_sendalot = 0;
#if 0
@@ -1452,8 +1453,13 @@ send:
TCP_PROBE3(debug__output, tp, th, m);
/* We're getting ready to send; log now. */
- TCP_LOG_EVENT(tp, th, &so->so_rcv, &so->so_snd, TCP_LOG_OUT, ERRNO_UNK,
- len, NULL, false);
+ /* XXXMT: We are not honoring verbose logging. */
+ if (tp->t_logstate != TCP_LOG_STATE_OFF)
+ lgb = tcp_log_event_(tp, th, &so->so_rcv, &so->so_snd,
+ TCP_LOG_OUT, ERRNO_UNK, len, NULL, false, NULL, NULL, 0,
+ NULL);
+ else
+ lgb = NULL;
/*
* Fill in IP length and desired time to live and
@@ -1553,6 +1559,10 @@ send:
}
#endif /* INET */
+ if (lgb != NULL) {
+ lgb->tlb_errno = error;
+ lgb = NULL;
+ }
out:
if (error == 0)
tcp_account_for_send(tp, len, (tp->snd_nxt != tp->snd_max), 0, hw_tls);
@@ -1666,10 +1676,6 @@ timer:
tcp_clean_dsack_blocks(tp);
}
if (error) {
- /* Record the error. */
- TCP_LOG_EVENT(tp, NULL, &so->so_rcv, &so->so_snd, TCP_LOG_OUT,
- error, 0, NULL, false);
-
/*
* We know that the packet was lost, so back out the
* sequence number advance, if any.