return useful listenq info in tcp_info and INET_DIAG_INFO
Subsystems (3)
PATCH 1/1 return useful listenq info in tcp_info and INET_DIAG_INFO
Return some useful information such as the maximum listen backlog and the current listen backlog in the tcp_info structure and INET_DIAG_INFO.
Signed-off-by Rick Jones <[email protected]>
Signed-off-by Eric Dumazet <[email protected]>
---
net/ipv4/tcp.c +8 -2
@@ -2030,8 +2030,14 @@ void tcp_get_info(struct sock *sk, struc info->tcpi_snd_mss = tp->mss_cache; info->tcpi_rcv_mss = icsk->icsk_ack.rcv_mss; - info->tcpi_unacked = tp->packets_out; - info->tcpi_sacked = tp->sacked_out; +if (sk->sk_state ==TCP_LISTEN ) { + info->tcpi_unacked = sk->sk_ack_backlog; + info->tcpi_sacked = sk->sk_max_ack_backlog; + } +else { + info->tcpi_unacked = tp->packets_out; + info->tcpi_sacked = tp->sacked_out; + } info->tcpi_lost = tp->lost_out; info->tcpi_retrans = tp->retrans_out; info->tcpi_fackets = tp->fackets_out;
net/ipv4/tcp_diag.c +6 -3
@@ -25,11 +25,14 @@ static void tcp_diag_get_info(struct socconst struct tcp_sock *tp =tcp_sk (sk);struct tcp_info *info = _info; -if (sk->sk_state ==TCP_LISTEN ) +if (sk->sk_state ==TCP_LISTEN ) { r->idiag_rqueue = sk->sk_ack_backlog; -else + r->idiag_wqueue = sk->sk_max_ack_backlog; + } +else { r->idiag_rqueue = tp->rcv_nxt - tp->copied_seq; - r->idiag_wqueue = tp->write_seq - tp->snd_una; + r->idiag_wqueue = tp->write_seq - tp->snd_una; + }if (info !=NULL )tcp_get_info (sk, info); }
David Miller
maintainerFrom: Rick Jones <[email protected]>
Date: Tue, 18 Sep 2007 12:54:31 -0700 (PDT)
Quoted 5 lines
Return some useful information such as the maximum listen backlog and the current listen backlog in the
tcp_infostructure andINET_DIAG_INFO.Signed-off-by Rick Jones <[email protected]>Signed-off-by Eric Dumazet <[email protected]>
Thanks Rick, I'll add this to net-2.6.24 with a minor coding style fix:
Review
Quoted 2 lines
(quoted diff) +2
-0+ } + else {
We don't split up closing braces and else clauses like this, it eats up a precious extra screen line :-)
} else {is the custom.