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
This commit is contained in:
parent
bb995f2ef0
commit
bd30a1216e
@ -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 @@ tcp_default_output(struct tcpcb *tp)
|
||||
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 @@ tcp_default_output(struct tcpcb *tp)
|
||||
}
|
||||
#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 @@ tcp_default_output(struct tcpcb *tp)
|
||||
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.
|
||||
|
Loading…
Reference in New Issue
Block a user