tcp: add TCPAckCompressed SNMP counter
This counter tracks number of ACK packets that the host has not sent, thanks to ACK compression. Sample output : $ nstat -n;sleep 1;nstat|egrep "IpInReceives|IpOutRequests|TcpInSegs|TcpOutSegs|TcpExtTCPAckCompressed" IpInReceives 123250 0.0 IpOutRequests 3684 0.0 TcpInSegs 123251 0.0 TcpOutSegs 3684 0.0 TcpExtTCPAckCompressed 119252 0.0 Signed-off-by: Eric Dumazet <edumazet@google.com> Acked-by: Neal Cardwell <ncardwell@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5d9f4262b7
commit
200d95f457
|
@ -278,6 +278,7 @@ enum
|
||||||
LINUX_MIB_TCPMTUPSUCCESS, /* TCPMTUPSuccess */
|
LINUX_MIB_TCPMTUPSUCCESS, /* TCPMTUPSuccess */
|
||||||
LINUX_MIB_TCPDELIVERED, /* TCPDelivered */
|
LINUX_MIB_TCPDELIVERED, /* TCPDelivered */
|
||||||
LINUX_MIB_TCPDELIVEREDCE, /* TCPDeliveredCE */
|
LINUX_MIB_TCPDELIVEREDCE, /* TCPDeliveredCE */
|
||||||
|
LINUX_MIB_TCPACKCOMPRESSED, /* TCPAckCompressed */
|
||||||
__LINUX_MIB_MAX
|
__LINUX_MIB_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -298,6 +298,7 @@ static const struct snmp_mib snmp4_net_list[] = {
|
||||||
SNMP_MIB_ITEM("TCPMTUPSuccess", LINUX_MIB_TCPMTUPSUCCESS),
|
SNMP_MIB_ITEM("TCPMTUPSuccess", LINUX_MIB_TCPMTUPSUCCESS),
|
||||||
SNMP_MIB_ITEM("TCPDelivered", LINUX_MIB_TCPDELIVERED),
|
SNMP_MIB_ITEM("TCPDelivered", LINUX_MIB_TCPDELIVERED),
|
||||||
SNMP_MIB_ITEM("TCPDeliveredCE", LINUX_MIB_TCPDELIVEREDCE),
|
SNMP_MIB_ITEM("TCPDeliveredCE", LINUX_MIB_TCPDELIVEREDCE),
|
||||||
|
SNMP_MIB_ITEM("TCPAckCompressed", LINUX_MIB_TCPACKCOMPRESSED),
|
||||||
SNMP_MIB_SENTINEL
|
SNMP_MIB_SENTINEL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -165,6 +165,8 @@ static inline void tcp_event_ack_sent(struct sock *sk, unsigned int pkts)
|
||||||
struct tcp_sock *tp = tcp_sk(sk);
|
struct tcp_sock *tp = tcp_sk(sk);
|
||||||
|
|
||||||
if (unlikely(tp->compressed_ack)) {
|
if (unlikely(tp->compressed_ack)) {
|
||||||
|
NET_ADD_STATS(sock_net(sk), LINUX_MIB_TCPACKCOMPRESSED,
|
||||||
|
tp->compressed_ack);
|
||||||
tp->compressed_ack = 0;
|
tp->compressed_ack = 0;
|
||||||
if (hrtimer_try_to_cancel(&tp->compressed_ack_timer) == 1)
|
if (hrtimer_try_to_cancel(&tp->compressed_ack_timer) == 1)
|
||||||
__sock_put(sk);
|
__sock_put(sk);
|
||||||
|
|
Loading…
Reference in New Issue