aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Tuexen <tuexen@FreeBSD.org>2022-08-08 11:07:10 +0000
committerMichael Tuexen <tuexen@FreeBSD.org>2022-08-08 11:07:10 +0000
commitbd30a1216e03e14cfaa7e91b1fc72ad76e9cd240 (patch)
tree2ec0422fa365f81b9706526e144f32306acbc512
parentbb995f2ef0e75e2e9cc784fc36fc3eb02d3e3113 (diff)
downloadsrc-bd30a1216e03e14cfaa7e91b1fc72ad76e9cd240.tar.gz
src-bd30a1216e03e14cfaa7e91b1fc72ad76e9cd240.zip
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
-rw-r--r--sys/netinet/tcp_output.c18
1 files 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.