tcp: improve rate estimate
[vpp.git] / src / vnet / tcp / tcp.h
index d736685..7ccc06a 100644 (file)
@@ -249,18 +249,24 @@ typedef struct tcp_bt_sample_
   u32 prev;                    /**< Previous sample index in list */
   u32 min_seq;                 /**< Min seq number in sample */
   u32 max_seq;                 /**< Max seq number. Set for rxt samples */
-  u64 delivered;               /**< Total delivered when sample taken */
+  u64 delivered;               /**< Total delivered bytes for sample */
   f64 delivered_time;          /**< Delivered time when sample taken */
+  f64 tx_time;                 /**< Transmit time for the burst */
   u64 tx_rate;                 /**< Tx pacing rate */
   tcp_bts_flags_t flags;       /**< Sample flag */
 } tcp_bt_sample_t;
 
 typedef struct tcp_rate_sample_
 {
-  u64 sample_delivered;                /**< Delivered of sample used for rate */
-  u32 delivered;               /**< Bytes delivered in ack time */
-  f64 ack_time;                        /**< Time to ack the bytes delivered */
+  u64 prior_delivered;         /**< Delivered of sample used for rate, i.e.,
+                                    total bytes delivered at prior_time */
+  f64 prior_time;              /**< Delivered time of sample used for rate */
+  f64 interval_time;           /**< Time to ack the bytes delivered */
+  f64 rtt_time;                        /**< RTT for sample */
   u64 tx_rate;                 /**< Tx pacing rate */
+  u32 delivered;               /**< Bytes delivered in interval_time */
+  u32 acked_and_sacked;                /**< Bytes acked + sacked now */
+  u32 lost;                    /**< Bytes lost now */
   tcp_bts_flags_t flags;       /**< Rate sample flags from bt sample */
 } tcp_rate_sample_t;