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>

@@ -175,29 +175,22 @@
         mblk_t  *tcp_xmit_head;         /* Head of xmit/rexmit list */
         mblk_t  *tcp_xmit_last;         /* Last valid data seen by tcp_wput */
         mblk_t  *tcp_xmit_tail;         /* Last data sent */
         uint32_t tcp_unsent;            /* # of bytes in hand that are unsent */
         uint32_t tcp_xmit_tail_unsent;  /* # of unsent bytes in xmit_tail */
-
         uint32_t tcp_suna;              /* Sender unacknowledged */
         uint32_t tcp_rexmit_nxt;        /* Next rexmit seq num */
         uint32_t tcp_rexmit_max;        /* Max retran seq num */
         uint32_t tcp_cwnd;              /* Congestion window */
         int32_t tcp_cwnd_cnt;           /* cwnd cnt in congestion avoidance */
-
-        uint32_t tcp_ibsegs;            /* Inbound segments on this stream */
-        uint32_t tcp_obsegs;            /* Outbound segments on this stream */
-
         uint32_t tcp_naglim;            /* Tunable nagle limit */
         uint32_t        tcp_valid_bits;
 #define TCP_ISS_VALID   0x1     /* Is the tcp_iss seq num active? */
 #define TCP_FSS_VALID   0x2     /* Is the tcp_fss seq num active? */
 #define TCP_URG_VALID   0x4     /* Is the tcp_urg seq num active? */
 #define TCP_OFO_FIN_VALID 0x8   /* Has TCP received an out of order FIN? */
 
-
-
         timeout_id_t    tcp_timer_tid;  /* Control block for timer service */
         uchar_t tcp_timer_backoff;      /* Backoff shift count. */
         int64_t tcp_last_recv_time;     /* Last time we receive a segment. */
         uint32_t tcp_init_cwnd;         /* Initial cwnd (start/restart) */
 

@@ -280,10 +273,12 @@
 
         uint32_t tcp_cwnd_ssthresh;     /* Congestion window */
         uint32_t tcp_cwnd_max;
         uint32_t tcp_csuna;             /* Clear (no rexmits in window) suna */
 
+        hrtime_t tcp_rtt_sum;           /* Round trip sum */
+        uint32_t tcp_rtt_cnt;           /* Round trip count (non_dup ACKs) */
         hrtime_t tcp_rtt_sa;            /* Round trip smoothed average */
         hrtime_t tcp_rtt_sd;            /* Round trip smoothed deviation */
         uint32_t tcp_rtt_update;        /* Round trip update(s) */
         clock_t tcp_ms_we_have_waited;  /* Total retrans time */
 

@@ -491,10 +486,12 @@
         timeout_id_t            tcp_reass_tid;
 
         /* FIN-WAIT-2 flush timeout */
         uint32_t                tcp_fin_wait_2_flush_interval;
 
+        tcp_conn_stats_t        tcp_cs;
+
 #ifdef DEBUG
         pc_t                    tcmp_stk[15];
 #endif
 } tcp_t;