Print this page
11547 Want connstat(1M) command to display per-connection TCP statistics
Portions contributed by: Cody Peter Mello <cody.mello@joyent.com>
Portions contributed by: Ahmed G <ahmedg@delphix.com>
Reviewed by: Jason King <jason.king@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Dan McDonald <danmcd@joyent.com>

*** 19,28 **** --- 19,29 ---- * CDDL HEADER END */ /* * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015 by Delphix. All rights reserved. */ #ifndef _INET_TCP_STATS_H #define _INET_TCP_STATS_H
*** 203,212 **** --- 204,233 ---- int64_t tcp_sc_conn_cnt; mib2_tcp_t tcp_sc_mib; tcp_stat_counter_t tcp_sc_stats; } tcp_stats_cpu_t; + /* + * Per-connection statistics. Some of these are also kept globally in the + * per-cpu tcp_sc_mib entry (see tcp_stats_cpu_t above). We need not maintain + * per-cpu versions of these stats since a connection is typically processed + * on the same CPU. + */ + typedef struct tcp_conn_stats { + uint64_t tcp_in_data_inorder_bytes; + uint64_t tcp_in_data_inorder_segs; + uint64_t tcp_in_data_unorder_bytes; + uint64_t tcp_in_data_unorder_segs; + uint64_t tcp_in_zwnd_probes; + + uint64_t tcp_out_data_bytes; + uint64_t tcp_out_data_segs; + uint64_t tcp_out_retrans_bytes; + uint64_t tcp_out_retrans_segs; + uint64_t tcp_out_zwnd_probes; + } tcp_conn_stats_t; + #define TCPS_BUMP_MIB(tcps, x) \ BUMP_MIB(&(tcps)->tcps_sc[CPU->cpu_seqid]->tcp_sc_mib, x) #define TCPS_UPDATE_MIB(tcps, x, y) \ UPDATE_MIB(&(tcps)->tcps_sc[CPU->cpu_seqid]->tcp_sc_mib, x, y)