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>
@@ -18,11 +18,14 @@
*
* CDDL HEADER END
*
* Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
*/
-/* Copyright (c) 1990 Mentat Inc. */
+/*
+ * Copyright (c) 1990 Mentat Inc.
+ * Copyright (c) 2015, 2016 by Delphix. All rights reserved.
+ */
#ifndef _INET_MIB2_H
#define _INET_MIB2_H
#include <netinet/in.h> /* For in6_addr_t */
@@ -1352,24 +1355,45 @@
/* remote ip addr for this connection { tcpConnEntry 4 } */
IpAddress tcpConnRemAddress;
/* remote port for this connection { tcpConnEntry 5 } */
int tcpConnRemPort; /* In host byte order */
struct tcpConnEntryInfo_s {
+ Counter64 ce_in_data_inorder_bytes;
+ Counter64 ce_in_data_inorder_segs;
+ Counter64 ce_in_data_unorder_bytes;
+ Counter64 ce_in_data_unorder_segs;
+ Counter64 ce_in_zwnd_probes;
+
+ Counter64 ce_out_data_bytes;
+ Counter64 ce_out_data_segs;
+ Counter64 ce_out_retrans_bytes;
+ Counter64 ce_out_retrans_segs;
+ Counter64 ce_out_zwnd_probes;
+ Counter64 ce_rtt_sum;
+
/* seq # of next segment to send */
Gauge ce_snxt;
/* seq # of of last segment unacknowledged */
Gauge ce_suna;
- /* currect send window size */
+ /* current send window size */
Gauge ce_swnd;
+ /* current congestion window size */
+ Gauge ce_cwnd;
/* seq # of next expected segment */
Gauge ce_rnxt;
/* seq # of last ack'd segment */
Gauge ce_rack;
- /* currenct receive window size */
+ /* # of unsent bytes in the xmit queue */
+ Gauge ce_unsent;
+ /* current receive window size */
Gauge ce_rwnd;
+ /* round-trip time smoothed average (us) */
+ Gauge ce_rtt_sa;
/* current rto (retransmit timeout) */
Gauge ce_rto;
+ /* round-trip time count */
+ Gauge ce_rtt_cnt;
/* current max segment size */
Gauge ce_mss;
/* actual internal state */
int ce_state;
} tcpConnEntryInfo;
@@ -1406,30 +1430,11 @@
int tcp6ConnRemPort;
/* interface index or zero { ipv6TcpConnEntry 5 } */
DeviceIndex tcp6ConnIfIndex;
/* state of tcp6 connection { ipv6TcpConnEntry 6 } RW */
int tcp6ConnState;
- struct tcp6ConnEntryInfo_s {
- /* seq # of next segment to send */
- Gauge ce_snxt;
- /* seq # of of last segment unacknowledged */
- Gauge ce_suna;
- /* currect send window size */
- Gauge ce_swnd;
- /* seq # of next expected segment */
- Gauge ce_rnxt;
- /* seq # of last ack'd segment */
- Gauge ce_rack;
- /* currenct receive window size */
- Gauge ce_rwnd;
- /* current rto (retransmit timeout) */
- Gauge ce_rto;
- /* current max segment size */
- Gauge ce_mss;
- /* actual internal state */
- int ce_state;
- } tcp6ConnEntryInfo;
+ struct tcpConnEntryInfo_s tcp6ConnEntryInfo;
/* pid of the processes that created this connection */
uint32_t tcp6ConnCreationProcess;
/* system uptime when the connection was created */
uint64_t tcp6ConnCreationTime;