u32 high_rxt; /**< Highest retransmitted sequence */
u32 rescue_rxt; /**< Rescue sequence number */
u32 lost_bytes; /**< Bytes lost as per RFC6675 */
+ u32 last_lost_bytes; /**< Number of bytes last lost */
u32 cur_rxt_hole; /**< Retransmitting from this hole */
#if TCP_SCOREBOARD_TRACE
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;