git: bd30a1216e03 - main - tcp: improve BBLog for output events when using the FreeBSD stack
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 10 Aug 2022 10:23:03 UTC
The branch main has been updated by tuexen:
URL: https://cgit.FreeBSD.org/src/commit/?id=bd30a1216e03e14cfaa7e91b1fc72ad76e9cd240
commit bd30a1216e03e14cfaa7e91b1fc72ad76e9cd240
Author: Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2022-08-08 11:07:10 +0000
Commit: Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2022-08-08 11:07:10 +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
---
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 d2f946034c60..4aa2f3664c55 100644
--- a/sys/netinet/tcp_output.c
+++ b/sys/netinet/tcp_output.c
@@ -222,6 +222,7 @@ tcp_default_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
@@ -1441,8 +1442,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
@@ -1542,6 +1548,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);
@@ -1655,10 +1665,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.