f64 delivered_time; /**< Delivered time when sample taken */
f64 tx_time; /**< Transmit time for the burst */
f64 first_tx_time; /**< Connection first tx time at tx */
+ u64 tx_in_flight; /**< In flight at tx time */
+ u64 tx_lost; /**< Lost at tx time */
tcp_bts_flags_t flags; /**< Sample flag */
} tcp_bt_sample_t;
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_in_flight; /**< In flight at (re)transmit time */
+ u64 tx_lost; /**< Lost over interval */
u32 delivered; /**< Bytes delivered in interval_time */
u32 acked_and_sacked; /**< Bytes acked + sacked now */
- u32 lost; /**< Bytes lost now */
+ u32 last_lost; /**< Bytes lost now */
+ u32 lost; /**< Number of bytes lost over interval */
tcp_bts_flags_t flags; /**< Rate sample flags from bt sample */
} tcp_rate_sample_t;
u64 app_limited; /**< Delivered when app-limited detected */
f64 delivered_time; /**< Time last bytes were acked */
f64 first_tx_time; /**< Send time for recently delivered/sent */
+ u64 lost; /**< Total bytes lost */
tcp_byte_tracker_t *bt; /**< Tx byte tracker */
tcp_errors_t errors; /**< Soft connection errors */
/* Max timers to be handled per dispatch loop */
u32 max_timers_per_loop;
- /** tx frames for ip 4/6 lookup nodes */
- vlib_frame_t *ip_lookup_tx_frames[2];
+ /** Session layer edge indices to tcp output */
+ u32 tco_next_node[2];
+
+ /* Fifo of pending timer expirations */
+ u32 *pending_timers;
CLIB_CACHE_LINE_ALIGN_MARK (cacheline1);
/** tx buffer free list */
u32 *tx_buffers;
- /* Fifo of pending timer expirations */
- u32 *pending_timers;
-
/* fifo of pending free requests */
tcp_cleanup_req_t *pending_cleanups;
/** vlib buffer size */
u32 bytes_per_buffer;
+ /** Session layer edge indices to ip lookup (syns, rst) */
+ u32 ipl_next_node[2];
+
/** Dispatch table by state and flags */
tcp_lookup_dispatch_t dispatch_table[TCP_N_STATES][64];