FreeBSD kernel IPv4 code
|
#include <sys/cdefs.h>
#include "opt_inet.h"
#include "opt_inet6.h"
#include "opt_ipsec.h"
#include "opt_tcpdebug.h"
#include "opt_ratelimit.h"
#include "opt_kern_tls.h"
#include <sys/param.h>
#include <sys/arb.h>
#include <sys/module.h>
#include <sys/kernel.h>
#include <sys/lock.h>
#include <sys/malloc.h>
#include <sys/mutex.h>
#include <sys/mbuf.h>
#include <sys/proc.h>
#include <sys/socket.h>
#include <sys/socketvar.h>
#include <sys/sysctl.h>
#include <sys/systm.h>
#include <sys/tree.h>
#include <sys/refcount.h>
#include <sys/queue.h>
#include <sys/tim_filter.h>
#include <sys/smp.h>
#include <sys/kthread.h>
#include <sys/kern_prefetch.h>
#include <sys/protosw.h>
#include <vm/uma.h>
#include <net/route.h>
#include <net/route/nhop.h>
#include <net/vnet.h>
#include <netinet/in.h>
#include <netinet/in_kdtrace.h>
#include <netinet/in_pcb.h>
#include <netinet/ip.h>
#include <netinet/ip_icmp.h>
#include <netinet/icmp_var.h>
#include <netinet/ip_var.h>
#include <netinet/ip6.h>
#include <netinet6/in6_pcb.h>
#include <netinet6/ip6_var.h>
#include <netinet/tcp.h>
#include <netinet/tcp_fsm.h>
#include <netinet/tcp_log_buf.h>
#include <netinet/tcp_seq.h>
#include <netinet/tcp_timer.h>
#include <netinet/tcp_var.h>
#include <netinet/tcp_syncache.h>
#include <netinet/tcp_hpts.h>
#include <netinet/tcp_ratelimit.h>
#include <netinet/tcp_accounting.h>
#include <netinet/tcpip.h>
#include <netinet/cc/cc.h>
#include <netinet/cc/cc_newreno.h>
#include <netinet/tcp_fastopen.h>
#include <netinet/tcp_lro.h>
#include <netinet/tcp_ecn.h>
#include <netipsec/ipsec_support.h>
#include <netinet/udp.h>
#include <netinet/udp_var.h>
#include <machine/in_cksum.h>
#include "sack_filter.h"
#include "tcp_rack.h"
#include "rack_bbr_common.h"
Go to the source code of this file.
Macros | |
#define | TCPSTATES /* for logging */ |
#define | TCPOUTFLAGS |
#define | TICKS2SBT(__t) (tick_sbt * ((sbintime_t)(__t))) |
#define | V_newreno_beta VNET(newreno_beta) |
#define | V_newreno_beta_ecn VNET(newreno_beta_ecn) |
#define | CUM_ACKED 1 |
#define | SACKED 2 |
#define | RACK_REXMTVAL(tp) max(rack_rto_min, ((tp)->t_srtt + ((tp)->t_rttvar << 2))) |
#define | RACK_TCPT_RANGESET(tv, value, tvmin, tvmax, slop) |
#define | DELAY_ACK(tp, tlen) |
#define | timersub(tvp, uvp, vvp) |
Functions | |
__FBSDID ("$FreeBSD$") | |
VNET_DECLARE (uint32_t, newreno_beta) | |
VNET_DECLARE (uint32_t, newreno_beta_ecn) | |
MALLOC_DEFINE (M_TCPFSB, "tcp_fsb", "TCP fast send block") | |
MALLOC_DEFINE (M_TCPDO, "tcp_do", "TCP deferred options") | |
static void | rack_log_progress_event (struct tcp_rack *rack, struct tcpcb *tp, uint32_t tick, int event, int line) |
static int | rack_process_ack (struct mbuf *m, struct tcphdr *th, struct socket *so, struct tcpcb *tp, struct tcpopt *to, uint32_t tiwin, int32_t tlen, int32_t *ofia, int32_t thflags, int32_t *ret_val) |
static int | rack_process_data (struct mbuf *m, struct tcphdr *th, struct socket *so, struct tcpcb *tp, int32_t drop_hdrlen, int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt) |
static void | rack_ack_received (struct tcpcb *tp, struct tcp_rack *rack, uint32_t th_ack, uint16_t nsegs, uint16_t type, int32_t recovery) |
static struct rack_sendmap * | rack_alloc (struct tcp_rack *rack) |
static struct rack_sendmap * | rack_alloc_limit (struct tcp_rack *rack, uint8_t limit_type) |
static struct rack_sendmap * | rack_check_recovery_mode (struct tcpcb *tp, uint32_t tsused) |
static void | rack_cong_signal (struct tcpcb *tp, uint32_t type, uint32_t ack) |
static void | rack_counter_destroy (void) |
static int | rack_ctloutput (struct inpcb *inp, struct sockopt *sopt) |
static int32_t | rack_ctor (void *mem, int32_t size, void *arg, int32_t how) |
static void | rack_set_pace_segments (struct tcpcb *tp, struct tcp_rack *rack, uint32_t line, uint64_t *fill_override) |
static void | rack_do_segment (struct mbuf *m, struct tcphdr *th, struct socket *so, struct tcpcb *tp, int32_t drop_hdrlen, int32_t tlen, uint8_t iptos) |
static void | rack_dtor (void *mem, int32_t size, void *arg) |
static void | rack_log_alt_to_to_cancel (struct tcp_rack *rack, uint32_t flex1, uint32_t flex2, uint32_t flex3, uint32_t flex4, uint32_t flex5, uint32_t flex6, uint16_t flex7, uint8_t mod) |
static void | rack_log_pacing_delay_calc (struct tcp_rack *rack, uint32_t len, uint32_t slot, uint64_t bw_est, uint64_t bw, uint64_t len_time, int method, int line, struct rack_sendmap *rsm, uint8_t quality) |
static struct rack_sendmap * | rack_find_high_nonack (struct tcp_rack *rack, struct rack_sendmap *rsm) |
static struct rack_sendmap * | rack_find_lowest_rsm (struct tcp_rack *rack) |
static void | rack_free (struct tcp_rack *rack, struct rack_sendmap *rsm) |
static void | rack_fini (struct tcpcb *tp, int32_t tcb_is_purged) |
static int | rack_get_sockopt (struct inpcb *inp, struct sockopt *sopt) |
static void | rack_do_goodput_measurement (struct tcpcb *tp, struct tcp_rack *rack, tcp_seq th_ack, int line, uint8_t quality) |
static uint32_t | rack_get_pacing_len (struct tcp_rack *rack, uint64_t bw, uint32_t mss) |
static int32_t | rack_handoff_ok (struct tcpcb *tp) |
static int32_t | rack_init (struct tcpcb *tp) |
static void | rack_init_sysctls (void) |
static void | rack_log_ack (struct tcpcb *tp, struct tcpopt *to, struct tcphdr *th, int entered_rec, int dup_ack_struck) |
static void | rack_log_output (struct tcpcb *tp, struct tcpopt *to, int32_t len, uint32_t seq_out, uint16_t th_flags, int32_t err, uint64_t ts, struct rack_sendmap *hintrsm, uint16_t add_flags, struct mbuf *s_mb, uint32_t s_moff, int hw_tls) |
static void | rack_log_sack_passed (struct tcpcb *tp, struct tcp_rack *rack, struct rack_sendmap *rsm) |
static void | rack_log_to_event (struct tcp_rack *rack, int32_t to_num, struct rack_sendmap *rsm) |
static int32_t | rack_output (struct tcpcb *tp) |
static uint32_t | rack_proc_sack_blk (struct tcpcb *tp, struct tcp_rack *rack, struct sackblk *sack, struct tcpopt *to, struct rack_sendmap **prsm, uint32_t cts, int *moved_two) |
static void | rack_post_recovery (struct tcpcb *tp, uint32_t th_seq) |
static void | rack_remxt_tmr (struct tcpcb *tp) |
static int | rack_set_sockopt (struct inpcb *inp, struct sockopt *sopt) |
static void | rack_set_state (struct tcpcb *tp, struct tcp_rack *rack) |
static int32_t | rack_stopall (struct tcpcb *tp) |
static void | rack_timer_activate (struct tcpcb *tp, uint32_t timer_type, uint32_t delta) |
static int32_t | rack_timer_active (struct tcpcb *tp, uint32_t timer_type) |
static void | rack_timer_cancel (struct tcpcb *tp, struct tcp_rack *rack, uint32_t cts, int line) |
static void | rack_timer_stop (struct tcpcb *tp, uint32_t timer_type) |
static uint32_t | rack_update_entry (struct tcpcb *tp, struct tcp_rack *rack, struct rack_sendmap *rsm, uint64_t ts, int32_t *lenp, uint16_t add_flag) |
static void | rack_update_rsm (struct tcpcb *tp, struct tcp_rack *rack, struct rack_sendmap *rsm, uint64_t ts, uint16_t add_flag) |
static int | rack_update_rtt (struct tcpcb *tp, struct tcp_rack *rack, struct rack_sendmap *rsm, struct tcpopt *to, uint32_t cts, int32_t ack_type, tcp_seq th_ack) |
static int32_t | tcp_addrack (module_t mod, int32_t type, void *data) |
static int | rack_do_close_wait (struct mbuf *m, struct tcphdr *th, struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos) |
static int | rack_do_closing (struct mbuf *m, struct tcphdr *th, struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos) |
static int | rack_do_established (struct mbuf *m, struct tcphdr *th, struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos) |
static int | rack_do_fastnewdata (struct mbuf *m, struct tcphdr *th, struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen, uint32_t tiwin, int32_t nxt_pkt, uint8_t iptos) |
static int | rack_do_fin_wait_1 (struct mbuf *m, struct tcphdr *th, struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos) |
static int | rack_do_fin_wait_2 (struct mbuf *m, struct tcphdr *th, struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos) |
static int | rack_do_lastack (struct mbuf *m, struct tcphdr *th, struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos) |
static int | rack_do_syn_recv (struct mbuf *m, struct tcphdr *th, struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos) |
static int | rack_do_syn_sent (struct mbuf *m, struct tcphdr *th, struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen, uint32_t tiwin, int32_t thflags, int32_t nxt_pkt, uint8_t iptos) |
struct rack_sendmap * | tcp_rack_output (struct tcpcb *tp, struct tcp_rack *rack, uint32_t tsused) |
static void | tcp_rack_xmit_timer (struct tcp_rack *rack, int32_t rtt, uint32_t len, uint32_t us_tim, int confidence, struct rack_sendmap *rsm, uint16_t rtrcnt) |
static void | tcp_rack_partialack (struct tcpcb *tp) |
static int | rack_set_profile (struct tcp_rack *rack, int prof) |
static void | rack_apply_deferred_options (struct tcp_rack *rack) |
static void | rack_set_cc_pacing (struct tcp_rack *rack) |
static void | rack_undo_cc_pacing (struct tcp_rack *rack) |
static int | sysctl_rack_clear (SYSCTL_HANDLER_ARGS) |
static __inline int | rb_map_cmp (struct rack_sendmap *b, struct rack_sendmap *a) |
RB_PROTOTYPE (rack_rb_tree_head, rack_sendmap, r_next, rb_map_cmp) | |
RB_GENERATE (rack_rb_tree_head, rack_sendmap, r_next, rb_map_cmp) | |
static uint32_t | rc_init_window (struct tcp_rack *rack) |
static uint64_t | rack_get_fixed_pacing_bw (struct tcp_rack *rack) |
static uint64_t | rack_get_bw (struct tcp_rack *rack) |
static uint16_t | rack_get_output_gain (struct tcp_rack *rack, struct rack_sendmap *rsm) |
static void | rack_log_dsack_event (struct tcp_rack *rack, uint8_t mod, uint32_t flex4, uint32_t flex5, uint32_t flex6) |
static void | rack_log_hdwr_pacing (struct tcp_rack *rack, uint64_t rate, uint64_t hw_rate, int line, int error, uint16_t mod) |
static uint64_t | rack_get_output_bw (struct tcp_rack *rack, uint64_t bw, struct rack_sendmap *rsm, int *capped) |
static void | rack_log_retran_reason (struct tcp_rack *rack, struct rack_sendmap *rsm, uint32_t tsused, uint32_t thresh, int mod) |
static void | rack_log_to_start (struct tcp_rack *rack, uint32_t cts, uint32_t to, int32_t slot, uint8_t which) |
static void | rack_log_map_chg (struct tcpcb *tp, struct tcp_rack *rack, struct rack_sendmap *prev, struct rack_sendmap *rsm, struct rack_sendmap *next, int flag, uint32_t th_ack, int line) |
static void | rack_log_rtt_upd (struct tcpcb *tp, struct tcp_rack *rack, uint32_t t, uint32_t len, struct rack_sendmap *rsm, int conf) |
static void | rack_log_rtt_sample (struct tcp_rack *rack, uint32_t rtt) |
static void | rack_log_rtt_sample_calc (struct tcp_rack *rack, uint32_t rtt, uint32_t send_time, uint32_t ack_time, int where) |
static void | rack_log_type_bbrsnd (struct tcp_rack *rack, uint32_t len, uint32_t slot, uint32_t cts, struct timeval *tv) |
static void | rack_log_doseg_done (struct tcp_rack *rack, uint32_t cts, int32_t nxt_pkt, int32_t did_out, int way_out, int nsegs) |
static void | rack_log_type_pacing_sizes (struct tcpcb *tp, struct tcp_rack *rack, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint8_t frm) |
static void | rack_log_type_just_return (struct tcp_rack *rack, uint32_t cts, uint32_t tlen, uint32_t slot, uint8_t hpts_calling, int reason, uint32_t cwnd_to_use) |
static void | rack_log_to_cancel (struct tcp_rack *rack, int32_t hpts_removed, int line, uint32_t us_cts, struct timeval *tv, uint32_t flags_on_entry) |
static void | rack_log_to_processing (struct tcp_rack *rack, uint32_t cts, int32_t ret, int32_t timers) |
static void | rack_log_to_prr (struct tcp_rack *rack, int frm, int orig_cwnd) |
static struct rack_sendmap * | rack_alloc_full_limit (struct tcp_rack *rack) |
static void | rack_free_trim (struct tcp_rack *rack) |
static uint32_t | rack_get_measure_window (struct tcpcb *tp, struct tcp_rack *rack) |
static int | rack_enough_for_measurement (struct tcpcb *tp, struct tcp_rack *rack, tcp_seq th_ack, uint8_t *quality) |
static void | rack_log_timely (struct tcp_rack *rack, uint32_t logged, uint64_t cur_bw, uint64_t low_bnd, uint64_t up_bnd, int line, uint8_t method) |
static int | rack_bw_can_be_raised (struct tcp_rack *rack, uint64_t cur_bw, uint64_t last_bw_est, uint16_t mult) |
static void | rack_validate_multipliers_at_or_above100 (struct tcp_rack *rack) |
static void | rack_validate_multipliers_at_or_below_100 (struct tcp_rack *rack) |
static void | rack_increase_bw_mul (struct tcp_rack *rack, int timely_says, uint64_t cur_bw, uint64_t last_bw_est, int override) |
static uint32_t | rack_get_decrease (struct tcp_rack *rack, uint32_t curper, int32_t rtt_diff) |
static uint32_t | rack_decrease_highrtt (struct tcp_rack *rack, uint32_t curper, uint32_t rtt) |
static void | rack_decrease_bw_mul (struct tcp_rack *rack, int timely_says, uint32_t rtt, int32_t rtt_diff) |
static void | rack_log_rtt_shrinks (struct tcp_rack *rack, uint32_t us_cts, uint32_t rtt, uint32_t line, uint8_t reas) |
static void | rack_set_prtt_target (struct tcp_rack *rack, uint32_t segsiz, uint32_t rtt) |
static void | rack_enter_probertt (struct tcp_rack *rack, uint32_t us_cts) |
static void | rack_exit_probertt (struct tcp_rack *rack, uint32_t us_cts) |
static void | rack_check_probe_rtt (struct tcp_rack *rack, uint32_t us_cts) |
static void | rack_update_multiplier (struct tcp_rack *rack, int32_t timely_says, uint64_t last_bw_est, uint32_t rtt, int32_t rtt_diff) |
static int32_t | rack_make_timely_judgement (struct tcp_rack *rack, uint32_t rtt, int32_t rtt_diff, uint32_t prev_rtt) |
static void | rack_cc_after_idle (struct tcp_rack *rack, struct tcpcb *tp) |
static uint32_t | rack_calc_thresh_rack (struct tcp_rack *rack, uint32_t srtt, uint32_t cts) |
static uint32_t | rack_calc_thresh_tlp (struct tcpcb *tp, struct tcp_rack *rack, struct rack_sendmap *rsm, uint32_t srtt) |
static uint32_t | rack_grab_rtt (struct tcpcb *tp, struct tcp_rack *rack) |
static uint32_t | rack_get_persists_timer_val (struct tcpcb *tp, struct tcp_rack *rack) |
static uint32_t | rack_timer_start (struct tcpcb *tp, struct tcp_rack *rack, uint32_t cts, int sup_rack) |
static void | rack_enter_persist (struct tcpcb *tp, struct tcp_rack *rack, uint32_t cts) |
static void | rack_exit_persist (struct tcpcb *tp, struct tcp_rack *rack, uint32_t cts) |
static void | rack_log_hpts_diag (struct tcp_rack *rack, uint32_t cts, struct hpts_diag *diag, struct timeval *tv) |
static void | rack_log_wakeup (struct tcpcb *tp, struct tcp_rack *rack, struct sockbuf *sb, uint32_t len, int type) |
static void | rack_start_hpts_timer (struct tcp_rack *rack, struct tcpcb *tp, uint32_t cts, int32_t slot, uint32_t tot_len_this_send, int sup_rack) |
static int | rack_timeout_rack (struct tcpcb *tp, struct tcp_rack *rack, uint32_t cts) |
static void | rack_adjust_orig_mlen (struct rack_sendmap *rsm) |
static void | rack_setup_offset_for_rsm (struct rack_sendmap *src_rsm, struct rack_sendmap *rsm) |
static __inline void | rack_clone_rsm (struct tcp_rack *rack, struct rack_sendmap *nrsm, struct rack_sendmap *rsm, uint32_t start) |
static struct rack_sendmap * | rack_merge_rsm (struct tcp_rack *rack, struct rack_sendmap *l_rsm, struct rack_sendmap *r_rsm) |
static int | rack_timeout_tlp (struct tcpcb *tp, struct tcp_rack *rack, uint32_t cts, uint8_t *doing_tlp) |
static int | rack_timeout_delack (struct tcpcb *tp, struct tcp_rack *rack, uint32_t cts) |
static int | rack_timeout_persist (struct tcpcb *tp, struct tcp_rack *rack, uint32_t cts) |
static int | rack_timeout_keepalive (struct tcpcb *tp, struct tcp_rack *rack, uint32_t cts) |
static void | rack_convert_rtts (struct tcpcb *tp) |
static void | rack_cc_conn_init (struct tcpcb *tp) |
static int | rack_timeout_rxt (struct tcpcb *tp, struct tcp_rack *rack, uint32_t cts) |
static int | rack_process_timers (struct tcpcb *tp, struct tcp_rack *rack, uint32_t cts, uint8_t hpts_calling, uint8_t *doing_tlp) |
static void | rack_stop_all_timers (struct tcpcb *tp) |
static void | tcp_rack_xmit_timer_commit (struct tcp_rack *rack, struct tcpcb *tp) |
static void | rack_apply_updated_usrtt (struct tcp_rack *rack, uint32_t us_rtt, uint32_t us_cts) |
static void | rack_need_set_test (struct tcpcb *tp, struct tcp_rack *rack, struct rack_sendmap *rsm, tcp_seq th_ack, int line, int use_which) |
static int | is_rsm_inside_declared_tlp_block (struct tcp_rack *rack, struct rack_sendmap *rsm) |
static void | rack_peer_reneges (struct tcp_rack *rack, struct rack_sendmap *rsm, tcp_seq th_ack) |
static void | rack_do_decay (struct tcp_rack *rack) |
static void | rack_process_to_cumack (struct tcpcb *tp, struct tcp_rack *rack, register uint32_t th_ack, uint32_t cts, struct tcpopt *to) |
static void | rack_handle_might_revert (struct tcpcb *tp, struct tcp_rack *rack) |
static int | rack_note_dsack (struct tcp_rack *rack, tcp_seq start, tcp_seq end) |
static void | rack_update_prr (struct tcpcb *tp, struct tcp_rack *rack, uint32_t changed, tcp_seq th_ack) |
static void | rack_strike_dupack (struct tcp_rack *rack) |
static void | rack_check_bottom_drag (struct tcpcb *tp, struct tcp_rack *rack, struct socket *so, int32_t acked) |
static void | rack_gain_for_fastoutput (struct tcp_rack *rack, struct tcpcb *tp, struct socket *so, uint32_t acked_amount) |
static void | rack_adjust_sendmap (struct tcp_rack *rack, struct sockbuf *sb, tcp_seq snd_una) |
static void | rack_collapsed_window (struct tcp_rack *rack) |
static void | rack_un_collapse_window (struct tcp_rack *rack) |
static void | rack_handle_delayed_ack (struct tcpcb *tp, struct tcp_rack *rack, int32_t tlen, int32_t tfo_syn) |
static void | rack_validate_fo_sendwin_up (struct tcpcb *tp, struct tcp_rack *rack) |
static int | rack_fastack (struct mbuf *m, struct tcphdr *th, struct socket *so, struct tcpcb *tp, struct tcpopt *to, int32_t drop_hdrlen, int32_t tlen, uint32_t tiwin, int32_t nxt_pkt, uint32_t cts) |
static int | rack_check_data_after_close (struct mbuf *m, struct tcpcb *tp, int32_t *tlen, struct tcphdr *th, struct socket *so) |
static void | rack_clear_rate_sample (struct tcp_rack *rack) |
static void | rack_init_fsb_block (struct tcpcb *tp, struct tcp_rack *rack) |
static int | rack_init_fsb (struct tcpcb *tp, struct tcp_rack *rack) |
static void | rack_timer_audit (struct tcpcb *tp, struct tcp_rack *rack, struct sockbuf *sb) |
static void | rack_do_win_updates (struct tcpcb *tp, struct tcp_rack *rack, uint32_t tiwin, uint32_t seq, uint32_t ack, uint32_t cts, uint32_t high_seq) |
static void | rack_log_input_packet (struct tcpcb *tp, struct tcp_rack *rack, struct tcp_ackent *ae, int ackval, uint32_t high_seq) |
static void | rack_handle_probe_response (struct tcp_rack *rack, uint32_t tiwin, uint32_t us_cts) |
static int | rack_do_compressed_ack_processing (struct tcpcb *tp, struct socket *so, struct mbuf *m, int nxt_pkt, struct timeval *tv) |
static int | rack_do_segment_nounlock (struct mbuf *m, struct tcphdr *th, struct socket *so, struct tcpcb *tp, int32_t drop_hdrlen, int32_t tlen, uint8_t iptos, int32_t nxt_pkt, struct timeval *tv) |
static int32_t | pace_to_fill_cwnd (struct tcp_rack *rack, int32_t slot, uint32_t len, uint32_t segsiz, int *capped, uint64_t *rate_wanted, uint8_t non_paced) |
static int32_t | rack_get_pacing_delay (struct tcp_rack *rack, struct tcpcb *tp, uint32_t len, struct rack_sendmap *rsm, uint32_t segsiz) |
static void | rack_start_gp_measurement (struct tcpcb *tp, struct tcp_rack *rack, tcp_seq startseq, uint32_t sb_offset) |
static uint32_t | rack_what_can_we_send (struct tcpcb *tp, struct tcp_rack *rack, uint32_t cwnd_to_use, uint32_t avail, int32_t sb_offset) |
static void | rack_log_fsb (struct tcp_rack *rack, struct tcpcb *tp, struct socket *so, uint32_t flags, unsigned ipoptlen, int32_t orig_len, int32_t len, int error, int rsm_is_null, int optlen, int line, uint16_t mode) |
static struct mbuf * | rack_fo_base_copym (struct mbuf *the_m, uint32_t the_off, int32_t *plen, struct rack_fast_send_blk *fsb, int32_t seglimit, int32_t segsize, int hw_tls) |
static struct mbuf * | rack_fo_m_copym (struct tcp_rack *rack, int32_t *plen, int32_t seglimit, int32_t segsize, struct mbuf **s_mb, int *s_soff) |
static int | rack_fast_rsm_output (struct tcpcb *tp, struct tcp_rack *rack, struct rack_sendmap *rsm, uint64_t ts_val, uint32_t cts, uint32_t ms_cts, struct timeval *tv, int len, uint8_t doing_tlp) |
static void | rack_sndbuf_autoscale (struct tcp_rack *rack) |
static int | rack_fast_output (struct tcpcb *tp, struct tcp_rack *rack, uint64_t ts_val, uint32_t cts, uint32_t ms_cts, struct timeval *tv, long tot_len, int *send_err) |
static void | rack_update_seg (struct tcp_rack *rack) |
static void | rack_mtu_change (struct tcpcb *tp) |
static int | rack_add_deferred_option (struct tcp_rack *rack, int sopt_name, uint64_t loptval) |
static int | rack_process_option (struct tcpcb *tp, struct tcp_rack *rack, int sopt_name, uint32_t optval, uint64_t loptval) |
static void | rack_hw_tls_change (struct tcpcb *tp, int chg) |
static int | rack_pru_options (struct tcpcb *tp, int flags) |
static void | rack_fill_info (struct tcpcb *tp, struct tcp_info *ti) |
MODULE_VERSION (MODNAME, 1) | |
DECLARE_MODULE (MODNAME, tcp_rack, SI_SUB_PROTO_DOMAIN, SI_ORDER_ANY) | |
MODULE_DEPEND (MODNAME, tcphpts, 1, 1, 1) | |
#define DELAY_ACK | ( | tp, | |
tlen | |||
) |
#define RACK_REXMTVAL | ( | tp | ) | max(rack_rto_min, ((tp)->t_srtt + ((tp)->t_rttvar << 2))) |
#define RACK_TCPT_RANGESET | ( | tv, | |
value, | |||
tvmin, | |||
tvmax, | |||
slop | |||
) |
#define timersub | ( | tvp, | |
uvp, | |||
vvp | |||
) |
__FBSDID | ( | "$FreeBSD$" | ) |
DECLARE_MODULE | ( | MODNAME | , |
tcp_rack | , | ||
SI_SUB_PROTO_DOMAIN | , | ||
SI_ORDER_ANY | |||
) |
|
inlinestatic |
Definition at line 8120 of file rack.c.
References rack_control::last_tlp_acked_end, rack_control::last_tlp_acked_start, tcp_rack::r_ctl, rack_sendmap::r_end, rack_sendmap::r_start, SEQ_GT, and SEQ_LT.
Referenced by rack_proc_sack_blk(), and rack_process_to_cumack().
MALLOC_DEFINE | ( | M_TCPDO | , |
"tcp_do" | , | ||
"TCP deferred options" | |||
) |
MALLOC_DEFINE | ( | M_TCPFSB | , |
"tcp_fsb" | , | ||
"TCP fast send block" | |||
) |
MODULE_DEPEND | ( | MODNAME | , |
tcphpts | , | ||
1 | , | ||
1 | , | ||
1 | |||
) |
MODULE_VERSION | ( | MODNAME | , |
1 | |||
) |
|
static |
Definition at line 14645 of file rack.c.
References rack_control::bw_rate_cap, rack_control::crte, ctf_flight_size(), ctf_outstanding(), rack_control::cwnd_to_use, HPTS_USEC_IN_SEC, inpcb::inp_route, tcp_rack::r_ctl, tcp_rack::r_fill_less_agg, tcp_rack::r_rack_hw_rate_caps, tcp_rack::r_via_fill_cw, tcp_rack::rack_attempt_hdwr_pace, tcp_rack::rack_hdrw_pacing, tcp_rack::rack_hdw_pace_ena, rack_log_hdwr_pacing(), rack_log_pacing_delay_calc(), RACK_MIN_BW, rack_control::rc_gp_min_rtt, tcp_rack::rc_inp, rack_control::rc_last_us_rtt, tcp_rack::rc_pace_fill_if_rttin_range, rack_control::rc_sacked, tcp_rack::rc_tp, tcp_rack::rtt_limit_mul, tcpcb::snd_wnd, tcp_hw_highest_rate(), and tcp_hw_highest_rate_ifp().
Referenced by rack_get_pacing_delay().
|
static |
Definition at line 4497 of file rack.c.
References BBR_LOG_CWND, cc_var::bytes_this_ack, CC_ACK, CC_ALGO, CCF_ABC_SENTAWND, CCF_CWND_LIMITED, CCF_USE_LOCAL_ABC, tcpcb::ccv, tcp_rack::client_bufferlvl, ctf_fixed_maxseg(), cc_var::curack, rack_control::cwnd_to_use, cc_var::flags, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, INP_WLOCK_ASSERT, cc_var::labc, cc_var::nsegs, r_ctl, tcp_rack::r_ctl, tcp_rack::r_must_retran, tcp_rack::r_use_labc_for_rec, rack_client_low_buf, rack_do_goodput_measurement(), rack_enough_for_measurement(), rack_max_abc_post_recovery, RACK_QUALITY_NONE, rack_verbose_logging, tcp_rack::rc_always_pace, rack_control::rc_early_recovery_segs, tcp_rack::rc_labc, rack_control::rc_out_at_rto, rack_control::rc_rack_largest_cwnd, rack_control::rc_snd_max_at_rto, tcp_rack::rc_tp, SEQ_GEQ, tcpcb::snd_cwnd, tcpcb::snd_ssthresh, tcpcb::snd_una, tcpcb::snd_wnd, tcpcb::t_bytes_acked, tcpcb::t_flags, tcpcb::t_inpcb, tcpcb::t_logstate, tcpcb::t_maxpeakrate, tcpcb::t_peakrate_thr, tcpcb::t_stats, tcp_get_usecs(), tcp_log_event_(), TCP_LOG_STATE_OFF, TF_GPUTINPROG, tcp_log_bbr::timeStamp, tcp_log_buffer::tlb_stackinfo, tcp_log_stackspecific::u_bbr, V_tcp_abc_l_var, V_tcp_do_newsack, VOI_TCP_CALCFRWINDIFF, and VOI_TCP_LCWIN.
Referenced by rack_do_compressed_ack_processing(), rack_fastack(), and rack_process_ack().
|
static |
Definition at line 19375 of file rack.c.
References next, rack_control::opt_list, deferred_opt_list::optname, deferred_opt_list::optval, and tcp_rack::r_ctl.
Referenced by rack_set_sockopt().
|
static |
Definition at line 5870 of file rack.c.
References rack_sendmap::m, rack_sendmap::orig_m_len, and rack_sendmap::soff.
Referenced by rack_adjust_sendmap(), rack_fast_rsm_output(), rack_process_to_cumack(), and rack_setup_offset_for_rsm().
|
static |
Definition at line 9927 of file rack.c.
References rack_sendmap::m, rack_sendmap::orig_m_len, tcp_rack::r_ctl, rack_sendmap::r_start, rack_adjust_orig_mlen(), rack_control::rc_mtree, and rack_sendmap::soff.
Referenced by rack_do_compressed_ack_processing(), rack_fastack(), and rack_process_ack().
|
static |
Definition at line 2739 of file rack.c.
References tcp_rack::r_ctl, rack_free_cache, rack_hot_alloc, rack_to_alloc, rack_to_alloc_emerg, rack_zone, rack_control::rc_free, tcp_rack::rc_free_cnt, and rack_control::rc_num_maps_alloced.
Referenced by rack_alloc_full_limit(), rack_alloc_limit(), rack_init(), rack_log_output(), and rack_output().
|
static |
Definition at line 2781 of file rack.c.
References tcp_rack::alloc_limit_reported, tcp_rack::do_detection, tcp_rack::r_ctl, rack_alloc(), rack_alloc_limited_conns, rack_to_alloc_limited, rack_control::rc_num_maps_alloced, and V_tcp_map_entries_limit.
Referenced by rack_log_output(), rack_timeout_tlp(), and rack_update_entry().
|
static |
Definition at line 2798 of file rack.c.
References tcp_rack::alloc_limit_reported, tcp_rack::do_detection, tcp_rack::r_ctl, rack_sendmap::r_limit_type, rack_alloc(), rack_alloc_limited_conns, rack_split_limited, rack_control::rc_num_split_allocs, and V_tcp_map_split_limit.
Referenced by rack_collapsed_window(), and rack_proc_sack_blk().
|
static |
Definition at line 20017 of file rack.c.
References next, rack_control::opt_list, deferred_opt_list::optname, deferred_opt_list::optval, tcp_rack::r_ctl, rack_process_option(), and tcp_rack::rc_tp.
Referenced by rack_check_bottom_drag(), and rack_do_goodput_measurement().
|
static |
Definition at line 7684 of file rack.c.
References tcp_rack::in_probe_rtt, tcp_rack::r_ctl, rack_enter_probertt(), rack_log_rtt_shrinks(), rack_min_rtt_movement, rack_probertt_lower_within, RACK_RTTS_NEWRTT, rack_time_between_probertt, tcp_rack::rc_always_pace, tcp_rack::rc_gp_dyn_mul, rack_control::rc_gp_min_rtt, rack_control::rc_lower_rtt_us_cts, and tcp_rack::use_fixed_rate.
Referenced by rack_handle_probe_response(), and rack_update_rtt().
|
static |
Definition at line 3053 of file rack.c.
References rack_log_timely(), rack_max_per_above, and rack_timely_no_stopping.
Referenced by rack_increase_bw_mul().
|
static |
Definition at line 4900 of file rack.c.
References rack_control::num_dsack, tcp_rack::r_ctl, rack_log_dsack_event(), rack_rto_max, rack_control::rc_pkt_delay, tcp_rack::rc_rack_tmr_std_based, tcp_rack::rc_rack_use_dsack, rack_control::rc_reorder_fade, rack_control::rc_reorder_shift, rack_control::rc_reorder_ts, and SEQ_GEQ.
Referenced by rack_check_recovery_mode(), rack_timer_start(), and tcp_rack_output().
|
static |
Definition at line 4986 of file rack.c.
References ctf_fixed_maxseg(), tcp_rack::r_ctl, rack_sendmap::r_end, rack_sendmap::r_rtr_cnt, rack_sendmap::r_start, rack_sendmap::r_tim_lastsent, rack_delayed_ack_time, rack_rto_max, rack_tlp_min, tcp_rack::rack_tlp_threshold_use, rack_control::rc_holes_rxt, rack_control::rc_pace_min_segs, rack_control::rc_sacked, rack_control::rc_tlp_threshold, tcpcb::snd_max, tcpcb::snd_una, tcpcb::t_rxtcur, TLP_USE_ID, TLP_USE_TWO_ONE, and TLP_USE_TWO_TWO.
Referenced by rack_timer_start().
Definition at line 4813 of file rack.c.
References CC_ALGO, tcpcb::ccv, INP_WLOCK_ASSERT, KMOD_TCPSTAT_INC, rc_init_window(), tcpcb::snd_cwnd, tcpcb::t_inpcb, tcpcb::t_maxseg, tcpcb::t_state, and TCPS_ESTABLISHED.
Referenced by rack_do_compressed_ack_processing(), rack_do_segment_nounlock(), and rack_output().
|
static |
Definition at line 6542 of file rack.c.
References cc_conn_init(), rack_convert_rtts(), rc_init_window(), tcpcb::snd_cwnd, tcpcb::snd_ssthresh, tcpcb::snd_wnd, tcpcb::t_fb_ptr, and tcpcb::t_srtt.
Referenced by rack_do_syn_recv(), and rack_do_syn_sent().
|
static |
Definition at line 9762 of file rack.c.
References ctf_fixed_maxseg(), ctf_flight_size(), rack_control::cwnd_to_use, tcp_rack::defer_options, rack_control::gp_bw, tcp_rack::gp_ready, IN_FASTRECOVERY, rack_control::last_max_bw, rack_control::num_measurements, ONE_POINT_TWO_MEG, tcp_rack::r_ctl, rack_apply_deferred_options(), rack_increase_bw_mul(), RACK_REQ_AVG, rack_req_segs, rack_control::rack_rs, RACK_RTT_VALID, rack_set_cc_pacing(), rack_set_pace_segments(), rack_validate_multipliers_at_or_above100(), tcp_rack::rc_dragged_bottom, tcp_rack::rc_gp_filled, rack_control::rc_rtt_diff, rack_control::rc_sacked, tcp_rack::rc_tp, rack_control::req_measurements, rack_rtt_sample::rs_flags, rack_rtt_sample::rs_rtt_lowest, rack_rtt_sample::rs_us_rtt, tcpcb::snd_max, tcpcb::snd_una, tcpcb::snd_wnd, and tcpcb::t_flags.
Referenced by rack_do_compressed_ack_processing(), rack_fastack(), and rack_process_ack().
|
static |
Definition at line 11692 of file rack.c.
References BANDLIM_UNLIMITED, ctf_do_dropwithreset(), KMOD_TCPSTAT_INC, tcp_rack::r_wanted_output, tcp_rack::rc_allow_data_af_clo, tcpcb::rcv_nxt, tcpcb::t_fb_ptr, tcpcb::t_flags2, tcp_close(), TCP_EI_STATUS_DATA_A_CLOSE, TCP_EI_STATUS_SERVER_RST, tcp_log_end_status(), and TF2_DROP_AF_DATA.
Referenced by rack_do_closing(), rack_do_fin_wait_1(), rack_do_fin_wait_2(), and rack_do_lastack().
Definition at line 3712 of file rack.c.
References ctf_flight_size(), tcp_rack::in_probe_rtt, tcp_rack::r_ctl, rack_enter_probertt(), rack_exit_probertt(), rack_log_rtt_shrinks(), rack_max_drain_hbp, rack_max_drain_wait, rack_min_probertt_hold, rack_must_drain, rack_per_of_gp_lowthresh, rack_per_of_gp_probertt, rack_control::rack_per_of_gp_probertt, rack_per_of_gp_probertt_reduce, rack_probe_rtt_safety_val, rack_probertt_gpsrtt_cnt_div, rack_probertt_gpsrtt_cnt_mul, RACK_RTTS_REACHTARGET, RACK_RTTS_SAFETY, rack_time_between_probertt, tcp_rack::rc_gp_filled, rack_control::rc_gp_min_rtt, rack_control::rc_gp_srtt, tcp_rack::rc_highly_buffered, rack_control::rc_lower_rtt_us_cts, rack_control::rc_sacked, rack_control::rc_target_probertt_flight, rack_control::rc_time_probertt_entered, rack_control::rc_time_probertt_starts, tcp_rack::rc_tp, rack_control::rc_went_idle_time, TSTMP_GEQ, TSTMP_GT, and TSTMP_LT.
Referenced by rack_do_compressed_ack_processing(), and rack_do_segment_nounlock().
|
static |
Definition at line 5088 of file rack.c.
References CC_NDUPACK, tcp_rack::r_ctl, rack_sendmap::r_flags, rack_sendmap::r_rtr_cnt, rack_sendmap::r_tim_lastsent, RACK_ACKED, rack_calc_thresh_rack(), rack_cong_signal(), rack_find_lowest_rsm(), rack_grab_rtt(), rack_control::rc_mtree, rack_control::rc_tmap, tcpcb::snd_una, tcpcb::t_fb_ptr, and TSTMP_LT.
Referenced by rack_timeout_rack().
|
inlinestatic |
Definition at line 12187 of file rack.c.
References tcp_rack::r_ctl, rack_control::rack_rs, RACK_RTT_EMPTY, rack_rtt_sample::rs_flags, rack_rtt_sample::rs_rtt_cnt, and rack_rtt_sample::rs_rtt_tot.
Referenced by rack_do_compressed_ack_processing(), rack_do_segment_nounlock(), and rack_init().
|
static |
Definition at line 5914 of file rack.c.
References rack_sendmap::m, rack_sendmap::r_dupack, rack_sendmap::r_end, rack_sendmap::r_fas, rack_sendmap::r_flags, rack_sendmap::r_hw_tls, rack_sendmap::r_just_ret, rack_sendmap::r_no_rtt_allowed, rack_sendmap::r_rtr_bytes, rack_sendmap::r_rtr_cnt, rack_sendmap::r_start, rack_sendmap::r_tim_lastsent, RACK_HAD_PUSH, RACK_HAS_FIN, RACK_HAS_SYN, and rack_setup_offset_for_rsm().
Referenced by rack_collapsed_window(), rack_log_output(), rack_proc_sack_blk(), rack_timeout_tlp(), and rack_update_entry().
|
static |
Definition at line 10234 of file rack.c.
References MAP_SPLIT, tcp_rack::r_ctl, rack_sendmap::r_flags, rack_sendmap::r_in_tmap, rack_sendmap::r_start, rack_alloc_limit(), rack_clone_rsm(), rack_collapsed_win, RACK_LIMIT_TYPE_SPLIT, rack_log_map_chg(), RACK_RWND_COLLAPSED, tcp_rack::rc_has_collapsed, rack_control::rc_mtree, rack_control::rc_tmap, tcp_rack::rc_tp, SEQ_GT, tcpcb::snd_una, and tcpcb::snd_wnd.
Referenced by rack_do_win_updates(), rack_fastack(), and rack_process_data().
Definition at line 4720 of file rack.c.
References CC_ALGO, CC_ECN, CC_NDUPACK, CC_RTO, CC_RTO_ERR, tcpcb::ccv, ctf_fixed_maxseg(), cc_var::curack, rack_control::cwnd_to_use, rack_control::dsack_byte_cnt, ENTER_CONGRECOVERY, ENTER_FASTRECOVERY, EXIT_CONGRECOVERY, EXIT_RECOVERY, IN_CONGRECOVERY, IN_FASTRECOVERY, IN_RECOVERY, INP_WLOCK_ASSERT, KMOD_TCPSTAT_INC, tcp_rack::r_ctl, tcp_rack::r_ent_rec_ns, rack_log_to_prr(), tcp_rack::rack_no_prr, rack_control::rc_cwnd_at_erec, rack_control::rc_prr_delivered, rack_control::rc_prr_out, rack_control::rc_prr_recovery_fs, rack_control::rc_prr_sndcnt, rack_control::rc_ssthresh_at_erec, rack_control::retran_during_recovery, SEQ_GEQ, tcpcb::snd_cwnd, tcpcb::snd_cwnd_prev, tcpcb::snd_max, tcpcb::snd_nxt, tcpcb::snd_recover, tcpcb::snd_recover_prev, tcpcb::snd_ssthresh, tcpcb::snd_ssthresh_prev, tcpcb::snd_una, tcpcb::snd_wnd, tcpcb::t_badrxtwin, tcpcb::t_bytes_acked, tcpcb::t_dupacks, tcpcb::t_fb_ptr, tcpcb::t_flags, tcpcb::t_flags2, tcpcb::t_inpcb, tcpcb::t_stats, TF2_ECN_PERMIT, TF2_ECN_SND_CWR, TF_WASCRECOVERY, TF_WASFRECOVERY, and VOI_TCP_CSIG.
Referenced by rack_check_recovery_mode(), rack_do_compressed_ack_processing(), rack_do_segment_nounlock(), rack_fastack(), rack_log_ack(), rack_output(), rack_process_ack(), rack_process_to_cumack(), rack_strike_dupack(), rack_timeout_rxt(), and rack_update_rtt().
|
static |
Definition at line 6490 of file rack.c.
References HPTS_USEC_IN_MSEC, HPTS_USEC_IN_SEC, RACK_REXMTVAL, rack_rto_max, tcpcb::t_rttvar, tcpcb::t_rxtcur, tcpcb::t_srtt, tcpcb::t_state, tcp_rexmit_slop, TCP_RTT_SCALE, TCP_RTT_SHIFT, TCP_RTTVAR_SHIFT, and TCPS_HAVEESTABLISHED.
Referenced by rack_cc_conn_init(), and rack_init().
|
static |
Definition at line 2684 of file rack.c.
References rack_ack_total, rack_alloc_limited_conns, rack_collapsed_win, rack_express_sack, rack_extended_rfo, rack_fto_rsm_send, rack_fto_send, rack_hot_alloc, rack_hw_pace_init_fail, rack_hw_pace_lost, rack_input_idle_reduces, rack_move_none, rack_move_some, rack_multi_single_eq, rack_nfto_resend, rack_non_fto_send, rack_opts_arry, RACK_OPTS_SIZE, rack_out_size, rack_persists_acks, rack_persists_loss, rack_persists_lost_ends, rack_persists_sends, rack_proc_non_comp_ack, rack_sack_attacks_detected, rack_sack_attacks_reversed, rack_sack_proc_all, rack_sack_proc_restart, rack_sack_proc_short, rack_sack_skipped_acked, rack_sack_splits, rack_sack_total, rack_sack_used_next_merge, rack_sack_used_prev_merge, rack_saw_enetunreach, rack_saw_enobuf, rack_saw_enobuf_hw, rack_split_limited, rack_tlp_newdata, rack_tlp_retran, rack_tlp_retran_bytes, rack_tlp_tot, rack_to_alloc, rack_to_alloc_emerg, rack_to_alloc_hard, rack_to_alloc_limited, rack_to_tot, rack_try_scwnd, and TCP_MSS_ACCT_SIZE.
Referenced by tcp_addrack().
|
static |
Definition at line 20587 of file rack.c.
References rack_get_sockopt(), and rack_set_sockopt().
|
static |
Definition at line 20606 of file rack.c.
Referenced by tcp_addrack().
|
static |
Definition at line 3299 of file rack.c.
References tcp_rack::r_ctl, rack_decrease_highrtt(), rack_get_decrease(), rack_gp_rtt_maxmul, rack_log_timely(), rack_per_lower_bound, rack_control::rack_per_of_gp_ca, rack_control::rack_per_of_gp_rec, rack_control::rack_per_of_gp_ss, rack_timely_dec_clear, tcp_rack::rc_gp_incr, rack_control::rc_gp_min_rtt, tcp_rack::rc_gp_no_rec_chg, tcp_rack::rc_gp_saw_ca, tcp_rack::rc_gp_saw_rec, tcp_rack::rc_gp_saw_ss, tcp_rack::rc_gp_timely_dec_cnt, and tcp_rack::rc_gp_timely_inc_cnt.
Referenced by rack_update_multiplier().
|
static |
Definition at line 3276 of file rack.c.
References tcp_rack::r_ctl, rack_gp_decrease_per, rack_gp_rtt_maxmul, and rack_control::rc_gp_min_rtt.
Referenced by rack_decrease_bw_mul().
|
static |
Definition at line 11597 of file rack.c.
References __ctf_process_rst(), _ctf_drop_checks(), BANDLIM_RST_OPENPORT, rack_control::challenge_ack_cnt, rack_control::challenge_ack_ts, ctf_calc_rwin(), ctf_challenge_ack(), ctf_do_drop(), ctf_do_dropafterack, ctf_do_dropwithreset_conn(), ctf_progress_timeout_check(), ctf_ts_check(), tcpcb::last_ack_sent, PROGRESS_DROP, tcp_rack::r_ctl, rack_log_progress_event(), rack_process_ack(), rack_process_data(), SEQ_LEQ, tcpcb::t_fb_ptr, tcpcb::t_fin_is_rst, tcpcb::t_flags, tcp_ts_getticks(), TF_ACKNOW, TF_NEEDSYN, tcpopt::to_flags, tcpopt::to_tsval, TOF_TS, tcpcb::ts_recent, tcpcb::ts_recent_age, and TSTMP_LT.
Referenced by rack_set_state().
|
static |
Definition at line 11853 of file rack.c.
References __ctf_process_rst(), _ctf_drop_checks(), BANDLIM_RST_OPENPORT, rack_control::challenge_ack_cnt, rack_control::challenge_ack_ts, ctf_calc_rwin(), ctf_challenge_ack(), ctf_do_drop(), ctf_do_dropafterack, ctf_do_dropwithreset_conn(), ctf_progress_timeout_check(), ctf_ts_check(), tcpcb::last_ack_sent, PROGRESS_DROP, tcp_rack::r_ctl, rack_check_data_after_close(), rack_log_progress_event(), rack_process_ack(), rack_process_data(), SEQ_LEQ, tcpcb::t_fb_ptr, tcpcb::t_fin_is_rst, tcpcb::t_flags, tcp_ts_getticks(), tcp_twstart(), TF_ACKNOW, TF_NEEDSYN, tcpopt::to_flags, tcpopt::to_tsval, TOF_TS, tcpcb::ts_recent, tcpcb::ts_recent_age, and TSTMP_LT.
Referenced by rack_set_state().
|
static |
Definition at line 13220 of file rack.c.
References tcp_ackent::ack, ACK_BEHIND, rack_control::ack_count, ACK_CUMACK, ACK_DUPACK, ACK_RWND, tcp_ackent::ack_val_set, rack_control::act_rcv_time, BBR_LOG_CWND, CC_ACK, CC_ALGO, CC_ECN, CC_RTO_ERR, tcpcb::ccv, rack_control::challenge_ack_cnt, rack_control::challenge_ack_ts, CNT_OF_ACKS_IN, tcp_ackent::codepoint, ctf_ack_war_checks(), ctf_calc_rwin(), ctf_do_drop(), ctf_fixed_maxseg(), ctf_progress_timeout_check(), ctf_ts_check_ac(), rack_control::current_round, CYC_HANDLE_ACK, CYC_HANDLE_MAP, rack_control::dsack_byte_cnt, rack_control::dsack_round_end, tcp_ackent::flags, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex8, tcp_rack::forced_ack, tcp_rack::gp_ready, tcpcb::gput_ack, tcpcb::gput_seq, HAS_TSTMP, IN_FASTRECOVERY, tcp_rack::in_probe_rtt, IN_RECOVERY, inpcb::inp_socket, KMOD_TCPSTAT_ADD, tcpcb::last_ack_sent, PACE_PKT_OUTPUT, PACE_TMR_RXT, tcp_rack::probe_not_answered, PROGRESS_CLEAR, PROGRESS_DROP, PROGRESS_UPDATE, tcp_rack::r_ctl, tcp_rack::r_fast_output, tcp_rack::r_state, tcp_rack::r_wanted_output, rack_ack_received(), rack_ack_total, rack_adjust_sendmap(), rack_cc_after_idle(), rack_check_bottom_drag(), rack_check_probe_rtt(), rack_clear_rate_sample(), rack_cong_signal(), rack_do_decay(), rack_do_win_updates(), rack_free_trim(), rack_gain_for_fastoutput(), rack_handle_might_revert(), rack_handle_probe_response(), rack_input_idle_reduces, rack_log_doseg_done(), rack_log_dsack_event(), rack_log_input_packet(), rack_log_pacing_delay_calc(), rack_log_progress_event(), rack_log_wakeup(), rack_multi_single_eq, tcp_rack::rack_no_prr, rack_post_recovery(), rack_process_to_cumack(), RACK_REXMTVAL, rack_rto_max, rack_rto_min, rack_set_state(), rack_control::rack_sf, rack_strike_dupack(), RACK_TCPT_RANGESET, rack_timer_audit(), rack_timer_cancel(), rack_update_prr(), rack_verbose_logging, tcp_rack::rc_always_pace, tcp_rack::rc_dsack_round_seen, tcp_rack::rc_gp_dyn_mul, rack_control::rc_gp_srtt, rack_control::rc_high_rwnd, rack_control::rc_hpts_flags, tcp_rack::rc_in_persist, rack_control::rc_rcvtime, rack_control::rc_reorder_ts, rack_control::rc_tlp_cnt_out, tcp_rack::rc_tlp_in_progress, tcp_rack::rc_tp, rack_control::rc_went_idle_time, rack_control::retran_during_recovery, rack_control::roundends, tcp_log_bbr::rttProp, tcp_rack::sack_attack_disable, rack_control::sack_count, sack_filter_clear(), tcp_ackent::seq, SEQ_GEQ, SEQ_GT, SEQ_LEQ, SEQ_LT, tcpcb::snd_max, tcpcb::snd_nxt, tcpcb::snd_recover, tcpcb::snd_scale, tcpcb::snd_una, tcpcb::snd_wl1, tcpcb::snd_wl2, tcpcb::snd_wnd, tcpcb::t_acktime, tcpcb::t_badrxtwin, tcpcb::t_dupacks, tcpcb::t_fb_ptr, tcpcb::t_flags, tcpcb::t_flags2, tcpcb::t_idle_reduce, tcpcb::t_inpcb, tcpcb::t_logstate, tcpcb::t_rcvtime, tcpcb::t_rxtcur, tcpcb::t_rxtshift, tcpcb::t_state, tcp_close(), tcp_drop(), tcp_ecn_input_segment(), TCP_EI_STATUS_SERVER_RST, tcp_fast_finwait2_recycle, tcp_finwait2_timeout, tcp_get_usecs(), tcp_log_end_status(), tcp_log_event_(), TCP_LOG_STATE_OFF, tcp_rack_partialack(), tcp_rack_xmit_timer_commit(), tcp_state_change(), tcp_timer_activate(), tcp_ts_getticks(), tcp_tv_to_mssectick(), tcp_tv_to_usectick(), tcp_twstart(), TCPS_CLOSING, TCPS_FIN_WAIT_1, TCPS_FIN_WAIT_2, TCPS_LAST_ACK, TF2_DROP_AF_DATA, TF_ACKNOW, TF_GPUTINPROG, TF_NEEDSYN, TF_PREVVALID, TF_RCVD_TSTMP, TF_SENTFIN, rack_control::timer_slop, tcp_log_bbr::timeStamp, tcp_ackent::timestamp, tcpopt::to_flags, tcpopt::to_tsecr, tcpopt::to_tsval, TOF_TS, TP_MAXIDLE, tcp_ackent::ts_echo, tcpcb::ts_offset, tcpcb::ts_recent, tcpcb::ts_recent_age, tcp_ackent::ts_value, TSTMP_GT, TSTMP_HDWR, TSTMP_LRO, TSTMP_LT, TT_2MSL, tcp_log_stackspecific::u_bbr, tcp_rack::use_fixed_rate, and tcp_ackent::win.
Referenced by rack_do_segment_nounlock().
|
static |
Definition at line 8757 of file rack.c.
References rack_control::ack_count, rack_control::act_rcv_time, ctf_decay_count(), rack_control::input_pkt, tcp_rack::r_ctl, tcp_rack::rc_in_persist, rack_control::rc_last_time_decay, tcp_rack::rc_tp, rack_control::sack_count, rack_control::sack_moved_extra, rack_control::sack_noextra_move, rack_control::saved_input_pkt, tcpcb::snd_max, tcpcb::snd_una, and timersub.
Referenced by rack_do_compressed_ack_processing(), and rack_log_ack().
|
static |
Definition at line 11465 of file rack.c.
References __ctf_process_rst(), _ctf_drop_checks(), BANDLIM_RST_OPENPORT, rack_control::challenge_ack_cnt, rack_control::challenge_ack_ts, ctf_calc_rwin(), ctf_challenge_ack(), ctf_do_drop(), ctf_do_dropafterack, ctf_do_dropwithreset_conn(), ctf_progress_timeout_check(), ctf_ts_check(), tcpcb::last_ack_sent, PROGRESS_DROP, tcp_rack::r_ctl, rack_do_fastnewdata(), rack_fastack(), rack_log_progress_event(), rack_process_ack(), rack_process_data(), rack_control::rc_rcvtime, tcpcb::rcv_nxt, SEGQ_EMPTY, SEQ_LEQ, tcpcb::t_fb_ptr, tcpcb::t_fin_is_rst, tcpcb::t_flags, tcp_ts_getticks(), TF_ACKNOW, TF_NEEDSYN, tcpopt::to_flags, tcpopt::to_tsval, TOF_SACK, TOF_TS, tcpcb::ts_recent, tcpcb::ts_recent_age, and TSTMP_LT.
Referenced by rack_set_state().
|
static |
Definition at line 10681 of file rack.c.
References ctf_calc_rwin(), IP6_HDR_LEN, KMOD_TCPSTAT_ADD, KMOD_TCPSTAT_INC, tcpcb::last_ack_sent, tcp_rack::r_ctl, rack_handle_delayed_ack(), rack_log_wakeup(), rack_control::rack_sf, tcpcb::rcv_numsacks, tcpcb::rcv_nxt, tcpcb::rcv_up, sack_filter_clear(), SEQ_LEQ, tcpcb::snd_max, tcpcb::snd_nxt, tcpcb::snd_una, tcpcb::snd_wl1, tcpcb::snd_wnd, tcpcb::t_fb_ptr, tcpcb::t_fbyte_in, tcpcb::t_fbyte_out, tcpcb::t_flags, tcpcb::t_flags2, TA_INPUT, tcp_autorcvbuf(), tcp_clean_sackreport(), tcp_trace(), tcp_ts_getticks(), TF2_FBYTES_COMPLETE, TF_NEEDFIN, TF_NEEDSYN, tcpopt::to_flags, tcpopt::to_tsval, TOF_TS, tcpcb::ts_recent, tcpcb::ts_recent_age, and TSTMP_LT.
Referenced by rack_do_established().
|
static |
Definition at line 11725 of file rack.c.
References __ctf_process_rst(), _ctf_drop_checks(), BANDLIM_RST_OPENPORT, rack_control::challenge_ack_cnt, rack_control::challenge_ack_ts, ctf_calc_rwin(), ctf_challenge_ack(), ctf_do_drop(), ctf_do_dropafterack, ctf_do_dropwithreset_conn(), ctf_progress_timeout_check(), ctf_ts_check(), tcpcb::last_ack_sent, PROGRESS_DROP, tcp_rack::r_ctl, rack_check_data_after_close(), rack_log_progress_event(), rack_process_ack(), rack_process_data(), SEQ_LEQ, tcpcb::t_fb_ptr, tcpcb::t_fin_is_rst, tcpcb::t_flags, tcp_fast_finwait2_recycle, tcp_finwait2_timeout, tcp_state_change(), tcp_timer_activate(), tcp_ts_getticks(), TCPS_FIN_WAIT_2, TF_ACKNOW, TF_NEEDSYN, tcpopt::to_flags, tcpopt::to_tsval, TOF_TS, TP_MAXIDLE, tcpcb::ts_recent, tcpcb::ts_recent_age, TSTMP_LT, and TT_2MSL.
Referenced by rack_set_state().
|
static |
Definition at line 12081 of file rack.c.
References __ctf_process_rst(), _ctf_drop_checks(), BANDLIM_RST_OPENPORT, rack_control::challenge_ack_cnt, rack_control::challenge_ack_ts, ctf_calc_rwin(), ctf_challenge_ack(), ctf_do_drop(), ctf_do_dropafterack, ctf_do_dropwithreset_conn(), ctf_progress_timeout_check(), ctf_ts_check(), tcpcb::last_ack_sent, PROGRESS_DROP, tcp_rack::r_ctl, rack_check_data_after_close(), rack_log_progress_event(), rack_process_ack(), rack_process_data(), SEQ_LEQ, tcpcb::t_fb_ptr, tcpcb::t_fin_is_rst, tcpcb::t_flags, tcp_ts_getticks(), TF_ACKNOW, TF_NEEDSYN, tcpopt::to_flags, tcpopt::to_tsval, TOF_TS, tcpcb::ts_recent, tcpcb::ts_recent_age, and TSTMP_LT.
Referenced by rack_set_state().
|
static |
Definition at line 4038 of file rack.c.
References rack_control::act_rcv_time, tcp_rack::app_limited_needs_set, ctf_fixed_maxseg(), tcp_rack::defer_options, rack_control::gp_bw, tcp_rack::gp_ready, tcpcb::gput_ack, tcpcb::gput_seq, tcpcb::gput_ts, HPTS_USEC_IN_MSEC, HPTS_USEC_IN_SEC, tcp_rack::in_probe_rtt, inpcb::inp_socket, rack_control::last_max_bw, tcp_rack::measure_saw_probe_rtt, MIN_GP_WIN, rack_control::num_measurements, PACE_PKT_OUTPUT, rack_sendmap::r_ack_arrival, tcp_rack::r_ctl, rack_sendmap::r_end, rack_sendmap::r_flags, rack_sendmap::r_rtr_cnt, rack_sendmap::r_start, rack_sendmap::r_tim_lastsent, RACK_ACKED, rack_apply_deferred_options(), rack_get_bw(), rack_get_measure_window(), rack_log_pacing_delay_calc(), rack_make_timely_judgement(), RACK_REQ_AVG, rack_set_cc_pacing(), rack_set_pace_segments(), rack_to_usec_ts(), rack_update_multiplier(), rack_wma_divisor, rack_control::rc_app_limited_cnt, tcp_rack::rc_dragged_bottom, rack_control::rc_first_appl, rack_control::rc_gp_cumack_ts, tcp_rack::rc_gp_dyn_mul, tcp_rack::rc_gp_filled, rack_control::rc_gp_high_rwnd, rack_control::rc_gp_lowrtt, rack_control::rc_gp_output_ts, tcp_rack::rc_gp_rtt_set, tcp_rack::rc_gp_saw_ca, tcp_rack::rc_gp_saw_rec, tcp_rack::rc_gp_saw_ss, rack_control::rc_gp_srtt, rack_control::rc_hpts_flags, rc_init_window(), tcp_rack::rc_inp, rack_control::rc_last_output_to, rack_control::rc_loss_at_start, rack_control::rc_loss_count, rack_control::rc_mtree, rack_control::rc_pace_min_segs, rack_control::rc_prev_gp_srtt, rack_control::rc_probertt_sndmax_atexit, rack_control::rc_rack_min_rtt, rack_control::rc_rtt_diff, tcp_rack::rc_tp, rack_control::req_measurements, SEQ_GEQ, SEQ_GT, SEQ_LT, tcpcb::snd_wnd, tcpcb::t_flags, tcpcb::t_inpcb, tcpcb::t_srtt, tcpcb::t_state, tcpcb::t_stats, tcpcb::t_stats_gput_prev, tcp_hpts_remove(), tcp_in_hpts(), tcp_tv_to_usectick(), TCPS_FIN_WAIT_1, TCPS_HAVEESTABLISHED, TF_GPUTINPROG, TSTMP_GEQ, VOI_TCP_GPUT, and VOI_TCP_GPUT_ND.
Referenced by rack_ack_received(), rack_enter_persist(), rack_enter_probertt(), and rack_exit_probertt().
|
static |
Definition at line 11967 of file rack.c.
References __ctf_process_rst(), _ctf_drop_checks(), BANDLIM_RST_OPENPORT, rack_control::challenge_ack_cnt, rack_control::challenge_ack_ts, ctf_calc_rwin(), ctf_challenge_ack(), ctf_do_drop(), ctf_do_dropafterack, ctf_do_dropwithreset_conn(), ctf_progress_timeout_check(), ctf_ts_check(), tcpcb::last_ack_sent, PROGRESS_DROP, tcp_rack::r_ctl, rack_check_data_after_close(), rack_log_progress_event(), rack_process_ack(), rack_process_data(), SEQ_LEQ, tcpcb::t_fb_ptr, tcpcb::t_fin_is_rst, tcpcb::t_flags, tcp_close(), tcp_ts_getticks(), TF_ACKNOW, TF_NEEDSYN, tcpopt::to_flags, tcpopt::to_tsval, TOF_TS, tcpcb::ts_recent, tcpcb::ts_recent_age, and TSTMP_LT.
Referenced by rack_set_state().
|
static |
Definition at line 14456 of file rack.c.
References ctf_do_queued_segments(), INP_WUNLOCK, rack_do_segment_nounlock(), tcpcb::t_in_pkt, tcpcb::t_inpcb, and tcp_get_usecs().
|
static |
Definition at line 13901 of file rack.c.
References rack_control::act_rcv_time, tcp_log_bbr::applimited, BANDLIM_RST_OPENPORT, BBR_LOG_CWND, tcp_log_bbr::bw_inuse, CC_ALGO, CC_ECN, tcpcb::ccv, ctf_do_dropwithreset(), ctf_fixed_maxseg(), ctf_flight_size(), tcp_log_bbr::cur_del_rate, rack_control::current_round, tcp_log_bbr::cwnd_gain, tcp_log_bbr::delivered, tcp_log_bbr::delRate, tcp_log_bbr::epoch, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_rack::forced_ack, tcpcb::gput_ack, tcpcb::gput_seq, HPTS_USEC_IN_SEC, tcp_rack::in_probe_rtt, tcp_log_bbr::inflight, tcp_log_bbr::inhpts, INP_IPV6, inpcb::inp_socket, inpcb::inp_vflag, INP_WLOCK_ASSERT, IS_FASTOPEN, tcpcb::iss, tcp_log_bbr::lost, tcp_log_bbr::lt_epoch, M_ACKCMP, PACE_PKT_OUTPUT, PACE_TMR_MASK, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkt_epoch, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, tcp_rack::r_early, tcp_rack::r_ent_rec_ns, tcp_rack::r_fast_output, tcp_rack::r_might_revert, tcp_rack::r_state, tcp_rack::r_substate, tcp_rack::r_wanted_output, rack_cc_after_idle(), rack_check_probe_rtt(), rack_clear_rate_sample(), rack_cong_signal(), rack_do_compressed_ack_processing(), rack_free_trim(), rack_handle_probe_response(), rack_input_idle_reduces, rack_log_doseg_done(), rack_log_pacing_delay_calc(), tcp_rack::rack_no_prr, rack_proc_non_comp_ack, rack_sack_not_required, rack_set_pace_segments(), rack_set_state(), rack_control::rack_sf, rack_start_hpts_timer(), rack_timer_audit(), rack_validate_fo_sendwin_up(), rack_verbose_logging, rack_control::rc_agg_early, tcp_rack::rc_always_pace, tcp_rack::rc_gp_dyn_mul, rack_control::rc_gp_srtt, rack_control::rc_high_rwnd, rack_control::rc_hpts_flags, tcp_rack::rc_inp, rack_control::rc_last_output_to, rack_control::rc_mtree, rack_control::rc_num_maps_alloced, rack_control::rc_prr_sndcnt, rack_control::rc_rcvtime, rack_control::rc_sacked, rack_control::rc_time_probertt_starts, tcp_rack::rc_tp, rack_control::roundends, tcp_log_bbr::rttProp, sack_filter_clear(), SEQ_GT, SEQ_LEQ, tcp_rack::set_pacing_done_a_iw, tcpcb::snd_max, tcpcb::snd_scale, tcpcb::snd_una, tcpcb::snd_wnd, tcpcb::t_fb, tcpcb::t_fb_ptr, tcpcb::t_flags, tcpcb::t_flags2, tcpcb::t_idle_reduce, tcpcb::t_inpcb, tcpcb::t_logstate, tcpcb::t_maxseg, tcpcb::t_rcvtime, tcpcb::t_rxtcur, tcpcb::t_state, tcpcb::t_stats, tcp_dooptions(), tcp_ecn_input_parallel_syn(), tcp_ecn_input_segment(), TCP_EI_STATUS_CLIENT_FIN, TCP_EI_STATUS_RST_IN_FRONT, tcp_fastopen_disable_path(), tcp_fastopen_update_cache(), tcp_get_flags(), tcp_get_usecs(), tcp_hpts_remove(), tcp_in_hpts(), tcp_log_end_status(), tcp_log_event_(), TCP_LOG_EVENTP, TCP_LOG_IN, TCP_LOG_STATE_OFF, tcp_mss(), tcp_rack_xmit_timer_commit(), tcp_set_hpts, tcp_switch_back_to_default(), tcp_tv_to_mssectick(), tcp_tv_to_usectick(), TCPS_CLOSING, TCPS_FIN_WAIT_1, TCPS_LISTEN, TCPS_SYN_SENT, TCPS_TIME_WAIT, TF_DELACK, TF_GPUTINPROG, TF_RCVD_SCALE, TF_RCVD_TSTMP, TF_REQ_SCALE, TF_REQ_TSTMP, TF_SACK_PERMIT, tcp_function_block::tfb_tcp_do_segment, tcp_log_bbr::timeStamp, tcpopt::to_flags, tcpopt::to_mss, TO_SYN, tcpopt::to_tfo_cookie, tcpopt::to_tfo_len, tcpopt::to_tsecr, tcpopt::to_tsval, tcpopt::to_wscale, TOF_FASTOPEN, TOF_MSS, TOF_SACKPERM, TOF_SCALE, TOF_TS, tcpcb::ts_offset, tcpcb::ts_recent, tcpcb::ts_recent_age, TSTMP_GT, tcp_log_stackspecific::u_bbr, tcp_rack::use_fixed_rate, tcp_log_bbr::use_lt_bw, V_drop_synfin, V_tcp_always_keepalive, V_tcp_tolerate_missing_ts, and VOI_TCP_FRWIN.
Referenced by rack_do_segment().
|
static |
Definition at line 11251 of file rack.c.
References __ctf_process_rst(), _ctf_drop_checks(), BANDLIM_RST_OPENPORT, rack_control::challenge_ack_cnt, rack_control::challenge_ack_ts, ctf_calc_rwin(), ctf_do_drop(), ctf_do_dropwithreset(), ctf_ts_check(), HPTS_USEC_IN_MSEC, tcpcb::irs, IS_FASTOPEN, KMOD_TCPSTAT_INC, tcpcb::last_ack_sent, PACE_TMR_RACK, PACE_TMR_RXT, PACE_TMR_TLP, tcp_rack::r_ctl, rack_cc_conn_init(), rack_log_rtt_sample_calc(), rack_process_ack(), rack_process_data(), rack_validate_fo_sendwin_up(), rack_control::rc_hpts_flags, tcpcb::rcv_scale, tcpcb::request_r_scale, SEQ_GT, SEQ_LEQ, SEQ_LT, tcpcb::snd_max, tcpcb::snd_una, tcpcb::snd_wl1, tcpcb::snd_wnd, tcpcb::t_fb_ptr, tcpcb::t_fin_is_rst, tcpcb::t_flags, tcpcb::t_rttlow, tcpcb::t_starttime, tcpcb::t_state, tcpcb::t_tfo_pending, TCP_EI_STATUS_RST_IN_FRONT, tcp_fast_finwait2_recycle, tcp_fastopen_decrement_counter(), tcp_finwait2_timeout, tcp_log_end_status(), TCP_PROBE5, tcp_rack_xmit_timer(), tcp_rack_xmit_timer_commit(), tcp_reass(), tcp_state_change(), tcp_timer_activate(), tcp_ts_getticks(), TCPS_ESTABLISHED, TCPS_FIN_WAIT_1, TCPS_FIN_WAIT_2, TF_NEEDFIN, TF_NEEDSYN, TF_RCVD_SCALE, TF_REQ_SCALE, TF_WAKESOR, tcpopt::to_flags, tcpopt::to_tsecr, tcpopt::to_tsval, TOF_TS, TP_MAXIDLE, tcpcb::ts_recent, tcpcb::ts_recent_age, TSTMP_LT, and TT_2MSL.
Referenced by rack_set_state().
|
static |
Definition at line 11047 of file rack.c.
References BANDLIM_RST_OPENPORT, ctf_calc_rwin(), ctf_do_drop(), ctf_do_dropwithreset(), DELAY_ACK, HPTS_USEC_IN_MSEC, INP_WLOCK_ASSERT, tcpcb::irs, IS_FASTOPEN, tcpcb::iss, KMOD_TCPSTAT_ADD, KMOD_TCPSTAT_INC, tcp_rack::r_ctl, tcp_rack::r_wanted_output, rack_cc_conn_init(), rack_log_rtt_sample_calc(), rack_process_ack(), rack_process_data(), rack_timer_cancel(), tcp_rack::rc_dack_toggle, rack_control::rc_rcvtime, tcpcb::rcv_adv, tcpcb::rcv_scale, tcpcb::rcv_up, tcpcb::rcv_wnd, tcpcb::request_r_scale, SEQ_GT, SEQ_LEQ, tcpcb::snd_max, tcpcb::snd_nxt, tcpcb::snd_una, tcpcb::snd_wl1, tcpcb::t_fb_ptr, tcpcb::t_flags, tcpcb::t_inpcb, tcpcb::t_rttlow, tcpcb::t_starttime, tcpcb::t_state, tcp_drop(), tcp_ecn_input_syn_sent(), TCP_EI_STATUS_RST_IN_FRONT, tcp_fast_finwait2_recycle, tcp_finwait2_timeout, tcp_log_end_status(), TCP_PROBE5, tcp_rack_xmit_timer(), tcp_rack_xmit_timer_commit(), tcp_rcvseqinit, tcp_state_change(), tcp_timer_activate(), tcp_ts_getticks(), TCPS_ESTABLISHED, TCPS_FIN_WAIT_1, TCPS_FIN_WAIT_2, TCPS_SYN_RECEIVED, TF_ACKNOW, TF_DELACK, TF_NEEDFIN, TF_NEEDSYN, TF_RCVD_SCALE, TF_REQ_SCALE, tcpopt::to_flags, tcpopt::to_tsecr, TOF_TS, TP_MAXIDLE, and TT_2MSL.
Referenced by rack_set_state().
|
static |
Definition at line 12965 of file rack.c.
References inpcb::inp_socket, KMOD_TCPSTAT_INC, tcpcb::max_sndwnd, tcp_rack::r_ctl, tcp_rack::r_wanted_output, rack_collapsed_window(), rack_enter_persist(), rack_exit_persist(), rack_un_collapse_window(), rack_validate_fo_sendwin_up(), tcp_rack::rc_has_collapsed, rack_control::rc_high_rwnd, tcp_rack::rc_in_persist, rack_control::rc_pace_min_segs, rack_control::rc_rcvtime, SEQ_LT, tcpcb::snd_max, tcpcb::snd_una, tcpcb::snd_wl1, tcpcb::snd_wl2, tcpcb::snd_wnd, tcpcb::t_inpcb, tcpcb::t_state, and TCPS_HAVEESTABLISHED.
Referenced by rack_do_compressed_ack_processing().
|
static |
Definition at line 20613 of file rack.c.
Referenced by tcp_addrack().
|
static |
Definition at line 2959 of file rack.c.
References rack_control::act_rcv_time, ctf_fixed_maxseg(), tcpcb::gput_ack, tcpcb::gput_seq, tcpcb::gput_ts, MIN_GP_WIN, tcp_rack::r_ctl, rack_sendmap::r_end, rack_min_srtts, RACK_QUALITY_ALLACKED, RACK_QUALITY_APPLIMITED, RACK_QUALITY_HIGH, rack_control::rc_first_appl, rack_control::rc_gp_srtt, rc_init_window(), rack_control::rc_pace_min_segs, SEQ_GEQ, SEQ_LT, tcpcb::snd_max, tcpcb::snd_una, and tcp_tv_to_usectick().
Referenced by rack_ack_received().
Definition at line 5378 of file rack.c.
References tcp_rack::forced_ack, rack_control::persist_lost_ends, tcp_rack::probe_not_answered, tcp_rack::r_ctl, rack_do_goodput_measurement(), RACK_QUALITY_PERSIST, RACK_REXMTVAL, rack_rto_max, rack_rto_min, tcp_rack::rack_scwnd_is_idle, RACK_TCPT_RANGESET, rack_timer_cancel(), tcp_rack::rc_in_persist, rack_control::rc_scw_index, rack_control::rc_went_idle_time, tcpcb::snd_una, tcpcb::t_flags, tcpcb::t_rxtcur, tcpcb::t_rxtshift, tcp_get_usecs(), TF_GPUTINPROG, and rack_control::timer_slop.
Referenced by rack_do_win_updates(), rack_fastack(), rack_output(), and rack_process_data().
ProbeRTT is a bit different in rack_pacing than in BBR. It is like BBR in that it uses the lowering of the RTT as a signal that we saw something new and counts from there for how long between. But it is different in that its quite simple. It does not play with the cwnd and wait until we get down to N segments outstanding and hold that for 200ms. Instead it just sets the pacing reduction rate to a set percentage (70 by default) and hold that for a number of recent GP Srtt's.
Definition at line 3489 of file rack.c.
References ctf_fixed_maxseg(), tcpcb::gput_seq, tcp_rack::in_probe_rtt, tcp_rack::measure_saw_probe_rtt, tcp_rack::r_ctl, rack_do_goodput_measurement(), rack_log_rtt_shrinks(), rack_per_of_gp_probertt, rack_control::rack_per_of_gp_probertt, rack_probertt_use_min_rtt_entry, RACK_QUALITY_PROBERTT, RACK_RTTS_ENTERPROBE, rack_set_prtt_target(), rack_control::rc_entry_gp_rtt, tcp_rack::rc_gp_dyn_mul, rack_control::rc_gp_min_rtt, rack_control::rc_gp_srtt, rack_control::rc_lower_rtt_us_cts, rack_control::rc_pace_min_segs, rack_control::rc_time_probertt_entered, rack_control::rc_time_probertt_starts, tcp_rack::rc_tp, SEQ_GT, tcpcb::snd_max, tcpcb::snd_una, tcpcb::t_flags, and TF_GPUTINPROG.
Referenced by rack_apply_updated_usrtt(), and rack_check_probe_rtt().
Definition at line 5410 of file rack.c.
References tcp_rack::in_probe_rtt, tcp_rack::r_ctl, tcp_rack::r_early, tcp_rack::r_late, rack_exit_probertt(), rack_min_probertt_hold, rack_probertt_gpsrtt_cnt_div, rack_probertt_gpsrtt_cnt_mul, RACK_REXMTVAL, rack_rto_max, rack_rto_min, tcp_rack::rack_scwnd_is_idle, RACK_TCPT_RANGESET, rack_control::rc_agg_delayed, rack_control::rc_agg_early, tcp_rack::rc_always_pace, tcp_rack::rc_gp_dyn_mul, rack_control::rc_gp_srtt, rack_control::rc_hpts_flags, tcp_rack::rc_in_persist, tcp_rack::rc_inp, rack_control::rc_lower_rtt_us_cts, rack_control::rc_scw_index, rack_control::rc_time_of_last_probertt, rack_control::rc_time_probertt_entered, rack_control::rc_time_probertt_starts, rack_control::rc_went_idle_time, tcpcb::t_rxtcur, tcpcb::t_rxtshift, tcp_get_usecs(), tcp_hpts_remove(), tcp_in_hpts(), rack_control::timer_slop, and tcp_rack::use_fixed_rate.
Referenced by rack_do_win_updates(), rack_fastack(), rack_process_data(), and rack_timeout_persist().
Definition at line 3543 of file rack.c.
References tcpcb::ccv, ctf_fixed_maxseg(), cc_var::flags, tcpcb::gput_seq, tcp_rack::in_probe_rtt, tcp_rack::r_ctl, rack_sendmap::r_flags, rack_sendmap::r_nseq_appl, rack_sendmap::r_start, RACK_APP_LIMITED, rack_atexit_prtt, rack_atexit_prtt_hbp, rack_do_goodput_measurement(), rack_log_rtt_shrinks(), rack_control::rack_per_of_gp_ca, rack_control::rack_per_of_gp_ss, rack_probe_rtt_sets_cwnd, rack_probertt_clear_is, rack_probertt_use_min_rtt_exit, RACK_QUALITY_PROBERTT, RACK_RTTS_EXITPROBE, rack_set_prtt_target(), rack_timely_min_segs, rack_control::rc_app_limited_cnt, rack_control::rc_end_appl, rack_control::rc_entry_gp_rtt, rack_control::rc_first_appl, tcp_rack::rc_gp_bwred, tcp_rack::rc_gp_incr, rack_control::rc_gp_min_rtt, rack_control::rc_gp_srtt, tcp_rack::rc_gp_timely_dec_cnt, tcp_rack::rc_gp_timely_inc_cnt, tcp_rack::rc_highly_buffered, rack_control::rc_lower_rtt_us_cts, rack_control::rc_mtree, rack_control::rc_pace_min_segs, rack_control::rc_probertt_sndmax_atexit, rack_control::rc_rtt_diff, rack_control::rc_target_probertt_flight, rack_control::rc_time_of_last_probertt, rack_control::rc_time_probertt_entered, rack_control::rc_time_probertt_starts, tcp_rack::rc_tp, SEQ_GT, tcpcb::snd_cwnd, tcpcb::snd_max, tcpcb::snd_ssthresh, tcpcb::snd_una, tcpcb::t_bytes_acked, tcpcb::t_flags, and TF_GPUTINPROG.
Referenced by rack_check_probe_rtt(), rack_exit_persist(), and rack_output().
|
static |
Definition at line 16059 of file rack.c.
References tcp_log_bbr::applimited, tcp_log_bbr::bw_inuse, CNT_OF_MSS_OUT, ctf_fixed_maxseg(), ctf_flight_size(), rack_control::cwnd_to_use, tcp_log_bbr::delivered, ERRNO_UNK, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_rack::forced_ack, rack_control::fsb, rack_fast_send_blk::hoplimit, rack_fast_send_blk::hw_tls, in_pseudo(), tcp_log_bbr::inflight, tcp_log_bbr::inhpts, inpcb::inp_route, inpcb::inp_route6, inpcb::inp_socket, IP_DF, ip::ip_dst, ip::ip_len, ip::ip_off, ip_output(), ip::ip_tos, ip::ip_ttl, ip::ip_v, IPPROTO_TCP, IPPROTO_UDP, IPTOS_ECN_MASK, IPVERSION, KMOD_TCPSTAT_ADD, KMOD_TCPSTAT_INC, rack_fast_send_blk::left_to_send, tcp_log_bbr::lt_epoch, rack_fast_send_blk::m, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkts_out, PROGRESS_START, r_ctl, tcp_rack::r_ctl, tcp_rack::r_fast_output, tcp_rack::r_is_v6, rack_fo_m_copym(), rack_fto_send, rack_get_bw(), rack_get_output_gain(), rack_get_pacing_delay(), RACK_HAD_PUSH, rack_log_output(), rack_log_progress_event(), tcp_rack::rack_no_prr, rack_out_size, RACK_SENT_FP, rack_sndbuf_autoscale(), rack_start_gp_measurement(), rack_start_hpts_timer(), rack_to_usec_ts(), rack_control::rc_agg_delayed, rack_control::rc_agg_early, tcp_rack::rc_inp, rack_control::rc_pace_max_segs, rack_control::rc_pace_min_segs, rack_control::rc_prr_sndcnt, rack_control::rc_sacked, rack_control::rc_tlp_rxt_last_time, tcp_rack::rc_tp, tcp_rack::rc_user_set_max_segs, tcpcb::rcv_nxt, tcpcb::rcv_scale, rack_fast_send_blk::recwin, rack_fast_send_blk::rfo_apply_push, in_addr::s_addr, tcpcb::snd_max, tcpcb::snd_nxt, SND_OUT_DATA, tcpcb::snd_una, tcpcb::snd_up, tcpcb::t_acktime, tcpcb::t_flags, tcpcb::t_flags2, tcpcb::t_logstate, tcpcb::t_maxseg, tcpcb::t_port, tcpcb::t_rtseq, tcpcb::t_rtttime, tcpcb::t_sndzerowin, tcpcb::t_state, tcpcb::t_stats, tcpcb::t_tsomax, tcpcb::t_tsomaxsegcount, tcpcb::t_tsomaxsegsize, tcp_account_for_send(), tcp_addoptions(), tcp_ecn_output_established(), rack_fast_send_blk::tcp_flags, tcp_in_hpts(), rack_fast_send_blk::tcp_ip_hdr, rack_fast_send_blk::tcp_ip_hdr_len, tcp_log_event_(), TCP_LOG_OUT, TCP_LOG_STATE_OFF, TCP_MSS_ACCT_ATIMER, tcp_set_flags(), TCPS_HAVERCVDSYN, TCPS_SYN_RECEIVED, TF2_ECN_PERMIT, TF2_ECN_SND_ECE, TF2_PLPMTU_PMTUD, TF_ACKNOW, TF_DELACK, TF_GPUTINPROG, TF_RCVD_TSTMP, TF_RXWIN0SENT, TF_TSO, rack_fast_send_blk::th, tcp_log_bbr::timeStamp, tcp_log_buffer::tlb_errno, tcpopt::to_flags, tcpopt::to_tsecr, tcpopt::to_tsval, TOF_TS, tcpcb::ts_offset, tcpcb::ts_recent, tcp_log_stackspecific::u_bbr, rack_fast_send_blk::udp, UDPSTAT_INC, udphdr::uh_sum, udphdr::uh_ulen, V_path_mtu_discovery, V_tcp_do_tso, V_tcp_minmss, V_tcp_udp_tunneling_port, and VOI_TCP_TXPB.
Referenced by rack_output().
|
static |
Definition at line 15541 of file rack.c.
References tcp_log_bbr::applimited, tcp_log_bbr::bw_inuse, ctf_fixed_maxseg(), ctf_flight_size(), rack_control::cwnd_to_use, tcp_log_bbr::delivered, ERRNO_UNK, tcp_rack::fast_rsm_hack, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_rack::forced_ack, rack_control::fsb, rack_fast_send_blk::hoplimit, IN_FASTRECOVERY, in_pseudo(), tcp_log_bbr::inflight, tcp_log_bbr::inhpts, inpcb::inp_route, inpcb::inp_route6, IP_DF, ip::ip_dst, ip::ip_len, ip::ip_off, ip_output(), ip::ip_tos, ip::ip_ttl, ip::ip_v, IPPROTO_TCP, IPPROTO_UDP, IPTOS_ECN_MASK, IPVERSION, KMOD_TCPSTAT_ADD, KMOD_TCPSTAT_INC, rack_control::last_sent_tlp_len, rack_control::last_sent_tlp_seq, tcp_log_bbr::lt_epoch, rack_sendmap::m, rack_sendmap::orig_m_len, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, rack_sendmap::r_end, rack_sendmap::r_flags, rack_sendmap::r_hw_tls, tcp_rack::r_is_v6, rack_sendmap::r_start, rack_adjust_orig_mlen(), rack_fo_base_copym(), rack_get_bw(), rack_get_output_gain(), RACK_HAD_PUSH, RACK_HAS_FIN, rack_log_output(), tcp_rack::rack_no_prr, rack_out_size, RACK_SENT_FP, RACK_TLP, rack_tlp_retran, rack_tlp_retran_bytes, rack_to_usec_ts(), rack_control::rc_agg_delayed, rack_control::rc_agg_early, tcp_rack::rc_inp, tcp_rack::rc_last_sent_tlp_past_cumack, tcp_rack::rc_last_sent_tlp_seq_valid, rack_control::rc_pace_max_segs, rack_control::rc_pace_min_segs, rack_control::rc_prr_sndcnt, rack_control::rc_sacked, rack_control::rc_tlp_cnt_out, tcp_rack::rc_tlp_in_progress, tcp_rack::rc_tp, tcp_rack::rc_user_set_max_segs, tcpcb::rcv_nxt, tcpcb::rcv_scale, rack_fast_send_blk::recwin, rack_control::retran_during_recovery, in_addr::s_addr, rack_sendmap::soff, tcpcb::t_flags, tcpcb::t_flags2, tcpcb::t_logstate, tcpcb::t_maxseg, tcpcb::t_port, tcpcb::t_sndrexmitpack, tcpcb::t_sndzerowin, tcpcb::t_state, tcpcb::t_stats, tcpcb::t_tsomax, tcpcb::t_tsomaxsegcount, tcpcb::t_tsomaxsegsize, tcp_account_for_send(), tcp_addoptions(), tcp_ecn_output_established(), tcp_in_hpts(), rack_fast_send_blk::tcp_ip_hdr, rack_fast_send_blk::tcp_ip_hdr_len, tcp_log_event_(), TCP_LOG_OUT, TCP_LOG_STATE_OFF, TCP_MSS_ACCT_ATIMER, tcp_set_flags(), TCPS_HAVERCVDSYN, TCPS_SYN_RECEIVED, TF2_ECN_PERMIT, TF2_ECN_SND_ECE, TF2_PLPMTU_PMTUD, TF_ACKNOW, TF_DELACK, TF_RCVD_TSTMP, TF_RXWIN0SENT, TF_TSO, rack_fast_send_blk::th, tcp_log_bbr::timeStamp, tcp_log_buffer::tlb_errno, tcpopt::to_flags, tcpopt::to_tsecr, tcpopt::to_tsval, TOF_TS, tcpcb::ts_offset, tcpcb::ts_recent, tcp_log_stackspecific::u_bbr, rack_fast_send_blk::udp, UDPSTAT_INC, udphdr::uh_sum, udphdr::uh_ulen, V_path_mtu_discovery, V_tcp_do_tso, V_tcp_minmss, V_tcp_udp_tunneling_port, and VOI_TCP_RETXPB.
Referenced by rack_output().
|
static |
Definition at line 10826 of file rack.c.
References BYTES_THIS_ACK, CC_ACK, CC_RTO_ERR, ctf_outstanding(), rack_control::dsack_byte_cnt, tcp_rack::gp_ready, tcp_rack::in_probe_rtt, IN_RECOVERY, inpcb::inp_socket, IP6_HDR_LEN, KMOD_TCPSTAT_ADD, KMOD_TCPSTAT_INC, tcpcb::last_ack_sent, tcpcb::max_sndwnd, PACE_PKT_OUTPUT, PACE_TMR_RXT, PROGRESS_CLEAR, tcp_rack::r_ctl, tcp_rack::r_fast_output, tcp_rack::r_wanted_output, rack_ack_received(), rack_adjust_sendmap(), rack_check_bottom_drag(), rack_collapsed_window(), rack_cong_signal(), rack_enter_persist(), rack_exit_persist(), rack_gain_for_fastoutput(), rack_log_ack(), rack_log_progress_event(), rack_log_wakeup(), RACK_REXMTVAL, rack_rto_max, rack_rto_min, RACK_TCPT_RANGESET, rack_timer_cancel(), rack_un_collapse_window(), rack_validate_fo_sendwin_up(), tcp_rack::rc_always_pace, tcp_rack::rc_gp_dyn_mul, tcp_rack::rc_has_collapsed, rack_control::rc_high_rwnd, rack_control::rc_hpts_flags, tcp_rack::rc_in_persist, rack_control::rc_pace_min_segs, rack_control::rc_rcvtime, rack_control::rc_sacked, rack_control::rc_tlp_cnt_out, tcp_rack::rc_tlp_in_progress, tcp_rack::rc_tp, rack_control::rc_went_idle_time, rack_control::retran_during_recovery, SEQ_GT, SEQ_LEQ, tcpcb::snd_max, tcpcb::snd_nxt, tcpcb::snd_una, tcpcb::snd_wl1, tcpcb::snd_wl2, tcpcb::snd_wnd, tcpcb::t_acktime, tcpcb::t_badrxtwin, tcpcb::t_dupacks, tcpcb::t_fb_ptr, tcpcb::t_flags, tcpcb::t_inpcb, tcpcb::t_rxtcur, tcpcb::t_rxtshift, tcpcb::t_state, TA_INPUT, tcp_get_usecs(), tcp_trace(), tcp_ts_getticks(), TCPS_HAVEESTABLISHED, TF_NEEDFIN, TF_NEEDSYN, TF_PREVVALID, TF_RCVD_TSTMP, rack_control::timer_slop, tcpopt::to_flags, tcpopt::to_tsval, TOF_TS, tcpcb::ts_recent, tcpcb::ts_recent_age, TSTMP_LT, and tcp_rack::use_fixed_rate.
Referenced by rack_do_established().
|
static |
Definition at line 20260 of file rack.c.
References INP_WLOCK_ASSERT, tcpcb::rcv_nxt, tcpcb::rcv_scale, tcpcb::rcv_wnd, tcpcb::snd_cwnd, tcpcb::snd_nxt, tcpcb::snd_scale, tcpcb::snd_ssthresh, tcpcb::snd_wnd, tcpcb::t_flags, tcpcb::t_flags2, tcpcb::t_inpcb, tcpcb::t_maxseg, tcpcb::t_rcvoopack, tcpcb::t_rcvtime, tcpcb::t_rttvar, tcpcb::t_rxtcur, tcpcb::t_sndrexmitpack, tcpcb::t_sndtlpbyte, tcpcb::t_sndtlppack, tcpcb::t_sndzerowin, tcpcb::t_srtt, tcpcb::t_state, tcp_offload_tcp_info(), TF2_ECN_PERMIT, TF_FASTOPEN, TF_RCVD_SCALE, TF_RCVD_TSTMP, TF_REQ_SCALE, TF_REQ_TSTMP, TF_SACK_PERMIT, and TF_TOE.
Referenced by rack_get_sockopt().
|
static |
Definition at line 4880 of file rack.c.
References rack_sendmap::r_flags, RACK_ACKED, and RACK_HAS_FIN.
Referenced by rack_timeout_tlp().
|
static |
Definition at line 4860 of file rack.c.
References tcp_rack::r_ctl, rack_sendmap::r_flags, RACK_ACKED, and rack_control::rc_tmap.
Referenced by rack_check_recovery_mode(), rack_timer_start(), and tcp_rack_output().
|
static |
Definition at line 12671 of file rack.c.
References rack_control::crte, rack_control::fsb, HPTS_USEC_IN_MSEC, HPTS_USEC_IN_SEC, inpcb::inp_flags2, next, rack_control::opt_list, tcp_rack::r_ctl, tcp_rack::r_limit_scw, tcp_rack::rack_hdrw_pacing, rack_pcb_zone, rack_undo_cc_pacing(), rack_zone, tcp_rack::rc_always_pace, rack_control::rc_free, tcp_rack::rc_free_cnt, rack_control::rc_lowest_us_rtt, rack_control::rc_mtree, rack_control::rc_scw_index, tcpcb::snd_max, tcpcb::snd_nxt, tcpcb::t_fb_ptr, tcpcb::t_flags, tcpcb::t_in_pkt, tcpcb::t_inpcb, tcpcb::t_rttlow, tcpcb::t_rttvar, tcpcb::t_rxtcur, tcpcb::t_srtt, tcpcb::t_tail_pkt, tcp_decrement_paced_conn(), rack_fast_send_blk::tcp_ip_hdr, tcp_log_flowend(), tcp_rel_pacing_rate(), TCP_RTT_SCALE, TCP_RTT_SHIFT, TCP_RTTVAR_SHIFT, and rack_fast_send_blk::th.
|
static |
Definition at line 15340 of file rack.c.
References rack_fast_send_blk::m, rack_fast_send_blk::o_m_len, and rack_fast_send_blk::off.
Referenced by rack_fast_rsm_output(), and rack_fo_m_copym().
|
static |
Definition at line 15502 of file rack.c.
References rack_control::fsb, rack_fast_send_blk::hw_tls, rack_fast_send_blk::m, rack_fast_send_blk::o_m_len, rack_fast_send_blk::off, tcp_rack::r_ctl, and rack_fo_base_copym().
Referenced by rack_fast_output().
|
static |
Definition at line 2826 of file rack.c.
References tcp_rack::r_ctl, rack_sendmap::r_flags, rack_sendmap::r_limit_type, rack_sendmap::r_nseq_appl, rack_sendmap::r_start, RACK_APP_LIMITED, rack_control::rc_app_limited_cnt, rack_control::rc_end_appl, rack_control::rc_first_appl, rack_control::rc_free, tcp_rack::rc_free_cnt, rack_control::rc_mtree, rack_control::rc_num_split_allocs, rack_control::rc_resend, rack_control::rc_sacklast, and rack_control::rc_tlpsend.
Referenced by rack_merge_rsm(), and rack_process_to_cumack().
|
static |
Definition at line 2862 of file rack.c.
References tcp_rack::r_ctl, rack_free_cache, rack_zone, rack_control::rc_free, and tcp_rack::rc_free_cnt.
Referenced by rack_do_compressed_ack_processing(), and rack_do_segment_nounlock().
|
static |
Definition at line 9887 of file rack.c.
References rack_control::fsb, inpcb::inp_socket, rack_fast_send_blk::left_to_send, tcp_rack::r_ctl, rack_extended_rfo, tcp_rack::rc_inp, tcpcb::snd_max, tcpcb::snd_una, and tcpcb::snd_wnd.
Referenced by rack_do_compressed_ack_processing(), and rack_fastack().
|
static |
Definition at line 1811 of file rack.c.
References rack_control::bw_rate_cap, rack_control::gp_bw, rack_control::init_rate, rack_control::num_measurements, tcp_rack::r_ctl, rack_get_fixed_pacing_bw(), RACK_REQ_AVG, tcp_rack::rc_tp, tcpcb::t_maxpeakrate, tcpcb::t_srtt, tcp_compute_initwnd(), tcp_maxseg(), tcp_rack::use_fixed_rate, and USECS_IN_SECOND.
Referenced by rack_do_goodput_measurement(), rack_fast_output(), rack_fast_rsm_output(), rack_get_measure_window(), rack_get_pacing_delay(), rack_log_fsb(), rack_log_pacing_delay_calc(), rack_log_rtt_shrinks(), rack_log_timely(), rack_output(), rack_set_pace_segments(), rack_set_prtt_target(), and rack_update_multiplier().
|
static |
Definition at line 3248 of file rack.c.
References tcp_rack::r_ctl, rack_gp_decrease_per, and rack_control::rc_gp_min_rtt.
Referenced by rack_decrease_bw_mul().
|
static |
Definition at line 1800 of file rack.c.
References rack_control::cwnd_to_use, IN_FASTRECOVERY, tcp_rack::r_ctl, rack_control::rc_fixed_pacing_rate_ca, rack_control::rc_fixed_pacing_rate_rec, rack_control::rc_fixed_pacing_rate_ss, tcp_rack::rc_tp, tcpcb::snd_ssthresh, and tcpcb::t_flags.
Referenced by rack_get_bw(), and rack_get_pacing_delay().
Definition at line 2880 of file rack.c.
References ctf_fixed_maxseg(), HPTS_USEC_IN_SEC, MIN_GP_WIN, tcp_rack::r_ctl, rack_def_data_window, rack_get_bw(), rack_goal_bdp, rack_min_measure_usec, tcp_rack::rc_gp_filled, rack_control::rc_pace_min_segs, and tcpcb::t_srtt.
Referenced by rack_do_goodput_measurement(), rack_need_set_test(), and rack_start_gp_measurement().
|
static |
Definition at line 2002 of file rack.c.
References rack_control::crte, inpcb::inp_route, tcp_rack::r_ctl, tcp_rack::r_rack_hw_rate_caps, tcp_rack::rack_attempt_hdwr_pace, rack_get_output_gain(), tcp_rack::rack_hdrw_pacing, tcp_rack::rack_hdw_pace_ena, rack_log_hdwr_pacing(), RACK_MIN_BW, tcp_rack::rc_inp, tcp_hw_highest_rate(), and tcp_hw_highest_rate_ifp().
Referenced by rack_get_pacing_delay(), and rack_set_pace_segments().
|
static |
Definition at line 1880 of file rack.c.
References rack_control::cwnd_to_use, IN_FASTRECOVERY, tcp_rack::in_probe_rtt, tcp_rack::r_ctl, tcp_rack::rack_no_prr, rack_control::rack_per_of_gp_ca, rack_control::rack_per_of_gp_probertt, rack_control::rack_per_of_gp_rec, rack_control::rack_per_of_gp_ss, tcp_rack::rack_rec_nonrxt_use_cr, tcp_rack::rc_tp, tcpcb::snd_ssthresh, tcpcb::t_flags, and tcp_rack::use_fixed_rate.
Referenced by rack_fast_output(), rack_fast_rsm_output(), rack_get_output_bw(), rack_log_fsb(), rack_log_pacing_delay_calc(), and rack_output().
|
static |
We have four possible states here having to do with the previous time and this time. previous | this-time A) 0 | 0 – fill_cw not in the picture B) 1 | 0 – we were doing a fill-cw but now are not C) 1 | 1 – all rates from fill_cw D) 0 | 1 – we were doing non-fill and now we are filling
For case A, C and D we don't allow a drop. But for case B where we now our on our steady rate we do allow a drop.
Definition at line 14746 of file rack.c.
References bbr_control::crte, rack_control::crte, rack_control::crte_prev_rate, ctf_fixed_maxseg(), rack_control::cwnd_to_use, ETHERNET_SEGMENT_SIZE, rack_control::gp_bw, tcp_rack::gp_ready, HPTS_USEC_IN_MSEC, HPTS_USEC_IN_SEC, IN_FASTRECOVERY, tcp_rack::in_probe_rtt, rack_control::init_rate, inpcb::inp_route, inpcb::inp_snd_tag, rack_control::last_hw_bw_req, pace_to_fill_cwnd(), r_ctl, tcp_rack::r_ctl, tcp_rack::r_rr_config, tcp_rack::r_up_only, tcp_rack::r_via_fill_cw, tcp_rack::rack_attempt_hdwr_pace, rack_enobuf_hw_boost_mult, rack_enobuf_hw_max, rack_enobuf_hw_min, rack_get_bw(), rack_get_fixed_pacing_bw(), rack_get_output_bw(), tcp_rack::rack_hdrw_pacing, tcp_rack::rack_hdw_pace_ena, rack_hw_pace_extra_slots, rack_hw_pace_init_fail, rack_hw_pace_lost, rack_hw_rate_min, rack_hw_rate_to_low, RACK_INITIAL_RTO, rack_limit_time_with_srtt, rack_log_hdwr_pacing(), rack_log_pacing_delay_calc(), rack_set_pace_segments(), rack_slot_reduction, tcp_hwrate_limit_table::rate, tcp_rack::rc_ack_can_sendout_data, tcp_rack::rc_always_pace, tcp_rack::rc_inp, rack_control::rc_min_to, rack_control::rc_pace_max_segs, tcp_rack::rc_pace_to_cwnd, rack_control::rc_rack_largest_cwnd, rack_control::rc_rack_min_rtt, tcp_rack::rc_tp, tcp_hwrate_limit_table::rs_num_enobufs, RS_PACING_GEQ, tcpcb::t_flags, tcpcb::t_maxpeakrate, tcpcb::t_srtt, tcp_chg_pacing_rate(), tcp_get_pacing_burst_size(), tcp_rel_pacing_rate(), tcp_set_pacing_rate(), tcp_hwrate_limit_table::time_between, and tcp_rack::use_fixed_rate.
Referenced by rack_fast_output(), and rack_output().
Definition at line 14624 of file rack.c.
References rack_control::crte, tcp_rack::r_ctl, rack_pace_one_seg, tcp_hwrate_limit_table::rate, tcp_rack::rc_force_max_seg, tcp_rack::rc_tp, tcp_rack::rc_user_set_max_segs, tcp_get_pacing_burst_size(), and tcp_rack::use_fixed_rate.
Referenced by rack_set_pace_segments().
Definition at line 5128 of file rack.c.
References PACE_TMR_PERSIT, tcp_rack::r_ctl, rack_persist_max, rack_persist_min, RACK_TCPT_RANGESET, rack_control::rc_hpts_flags, tcpcb::t_rttvar, tcpcb::t_rxtshift, tcpcb::t_srtt, tcp_backoff, and rack_control::timer_slop.
Referenced by rack_timer_start().
|
static |
Definition at line 20315 of file rack.c.
References newreno::beta, newreno::beta_ecn, rack_control::bw_rate_cap, tcpcb::cc_algo, cc_var::cc_data, CCALGONAME_NEWRENO, CCF_HYSTART_ALLOWED, CCF_HYSTART_CAN_SH_CWND, CCF_HYSTART_CONS_SSTH, tcpcb::ccv, tcp_rack::defer_options, tcp_rack::do_detection, tcp_rack::fast_rsm_hack, cc_var::flags, rack_control::init_rate, INP_WUNLOCK, intotcpcb, cc_algo::name, tcp_rack::no_prr_addback, tcp_rack::r_ctl, tcp_rack::r_fill_less_agg, tcp_rack::r_limit_scw, tcp_rack::r_mbuf_queue, tcp_rack::r_rack_hw_rate_caps, tcp_rack::r_rr_config, tcp_rack::r_up_only, tcp_rack::r_use_cmp_ack, tcp_rack::r_use_labc_for_rec, tcp_rack::rack_enable_scwnd, rack_fill_info(), tcp_rack::rack_hdw_pace_ena, RACK_HYSTART_OFF, RACK_HYSTART_ON, RACK_HYSTART_ON_W_SC, RACK_HYSTART_ON_W_SC_C, tcp_rack::rack_no_prr, rack_control::rack_per_of_gp_ca, rack_control::rack_per_of_gp_ss, tcp_rack::rack_rec_nonrxt_use_cr, tcp_rack::rack_tlp_threshold_use, tcp_rack::rc_allow_data_af_clo, tcp_rack::rc_always_pace, rack_control::rc_early_recovery_segs, rack_control::rc_fixed_pacing_rate_ca, rack_control::rc_fixed_pacing_rate_rec, rack_control::rc_fixed_pacing_rate_ss, tcp_rack::rc_force_max_seg, tcp_rack::rc_gp_dyn_mul, tcp_rack::rc_init_win, tcp_rack::rc_labc, rack_control::rc_min_to, rack_control::rc_no_push_at_mrtt, tcp_rack::rc_pace_to_cwnd, tcp_rack::rc_pacing_cc_set, rack_control::rc_pkt_delay, rack_control::rc_prr_sendalot, tcp_rack::rc_rack_tmr_std_based, tcp_rack::rc_rack_use_dsack, rack_control::rc_rate_sample_method, rack_control::rc_reorder_fade, rack_control::rc_reorder_shift, rack_control::rc_saved_beta, rack_control::rc_tlp_cwnd_reduce, rack_control::rc_tlp_threshold, tcp_rack::rc_user_set_max_segs, rack_control::req_measurements, tcpcb::t_delayed_ack, tcpcb::t_fb_ptr, tcp_default_ctloutput(), rack_control::timer_slop, and tcp_rack::use_rack_rr.
Referenced by rack_ctloutput().
Definition at line 5070 of file rack.c.
References RACK_INITIAL_RTO, tcp_rack::rc_rack_rtt, and tcpcb::t_srtt.
Referenced by rack_check_recovery_mode(), rack_timer_start(), and tcp_rack_output().
|
static |
Definition at line 10324 of file rack.c.
References DELAY_ACK, tcp_rack::r_ctl, tcp_rack::r_wanted_output, rack_timer_cancel(), tcp_rack::rc_dack_mode, tcp_rack::rc_dack_toggle, rack_control::rc_rcvtime, tcpcb::t_flags, TF_ACKNOW, and TF_DELACK.
Referenced by rack_do_fastnewdata(), and rack_process_data().
Definition at line 9104 of file rack.c.
References EXIT_RECOVERY, tcp_rack::r_ctl, tcp_rack::r_ent_rec_ns, rack_sendmap::r_flags, tcp_rack::r_might_revert, rack_log_to_prr(), RACK_SACK_PASSED, rack_control::rc_ssthresh_at_erec, rack_control::rc_tmap, tcpcb::snd_cwnd, tcpcb::snd_recover, tcpcb::snd_ssthresh, tcpcb::snd_una, and tcpcb::t_flags.
Referenced by rack_do_compressed_ack_processing(), rack_log_ack(), and rack_note_dsack().
|
static |
Definition at line 13166 of file rack.c.
References tcp_rack::forced_ack, rack_control::forced_ack_ts, tcp_rack::probe_not_answered, tcp_rack::r_ctl, rack_apply_rtt_with_reduced_conf, rack_apply_updated_usrtt(), rack_persists_acks, tcp_rack::rc_in_persist, tcp_rack::rc_tp, tcpcb::snd_wnd, tcpcb::t_rxtshift, and tcp_rack_xmit_timer().
Referenced by rack_do_compressed_ack_processing(), and rack_do_segment_nounlock().
|
static |
Definition at line 12631 of file rack.c.
References rack_sack_not_required, tcpcb::snd_max, tcpcb::snd_una, tcpcb::t_flags, tcpcb::t_state, TCPS_CLOSED, TCPS_LISTEN, TCPS_SYN_RECEIVED, TCPS_SYN_SENT, TF_SACK_PERMIT, and TF_SENTFIN.
|
static |
Definition at line 20032 of file rack.c.
References rack_control::fsb, rack_fast_send_blk::hw_tls, tcp_rack::r_ctl, rack_sendmap::r_hw_tls, rack_control::rc_mtree, and tcpcb::t_fb_ptr.
|
static |
Definition at line 3157 of file rack.c.
References tcp_rack::r_ctl, rack_bw_can_be_raised(), rack_gp_increase_per, rack_log_timely(), rack_control::rack_per_of_gp_ca, rack_control::rack_per_of_gp_rec, rack_control::rack_per_of_gp_ss, rack_per_upper_bound_ca, rack_per_upper_bound_ss, RACK_TIMELY_CNT_BOOST, tcp_rack::rc_dragged_bottom, tcp_rack::rc_gp_incr, tcp_rack::rc_gp_no_rec_chg, tcp_rack::rc_gp_saw_ca, tcp_rack::rc_gp_saw_rec, tcp_rack::rc_gp_saw_ss, tcp_rack::rc_gp_timely_inc_cnt, and rack_control::rc_rtt_diff.
Referenced by rack_check_bottom_drag(), and rack_update_multiplier().
|
static |
Definition at line 12348 of file rack.c.
References rack_control::act_rcv_time, newreno::beta, newreno::beta_ecn, rack_control::bw_rate_cap, CC_NEWRENO_BETA_ECN_ENABLED, CCF_HYSTART_ALLOWED, CCF_HYSTART_CAN_SH_CWND, CCF_HYSTART_CONS_SSTH, tcpcb::ccv, rack_control::challenge_ack_ts, rack_control::cwnd_to_use, tcp_rack::do_detection, cc_var::flags, tcp_rack::gp_ready, inpcb::inp_flags2, INP_IPV6, inpcb::inp_socket, INP_SUPPORTS_MBUFQ, inpcb::inp_vflag, tcpcb::iss, rack_sendmap::m, newreno::newreno_flags, rack_control::opt_list, rack_sendmap::orig_m_len, tcp_rack::r_ctl, rack_sendmap::r_dupack, rack_sendmap::r_end, rack_sendmap::r_flags, rack_sendmap::r_in_tmap, tcp_rack::r_is_v6, tcp_rack::r_limit_scw, tcp_rack::r_mbuf_queue, rack_sendmap::r_no_rtt_allowed, tcp_rack::r_rack_hw_rate_caps, rack_sendmap::r_rtr_bytes, rack_sendmap::r_rtr_cnt, rack_sendmap::r_start, rack_sendmap::r_tim_lastsent, tcp_rack::r_up_only, tcp_rack::r_use_cmp_ack, rack_alloc(), rack_bw_rate_cap, rack_clear_rate_sample(), rack_convert_rtts(), rack_def_profile, rack_default_init_window, rack_disable_prr, rack_do_dyn_mul, rack_do_hystart, rack_dsack_std_based, rack_enable_hw_pacing, rack_enable_mqueue_for_nonpaced, tcp_rack::rack_enable_scwnd, rack_enable_shared_cwnd, rack_gp_no_rec_chg, RACK_HAS_FIN, RACK_HAS_SYN, tcp_rack::rack_hdw_pace_ena, rack_hptsi_segments, rack_hw_rate_caps, rack_hw_up_only, rack_ignore_data_after_close, rack_init_fsb(), rack_limits_scwnd, rack_log_rtt_shrinks(), rack_lower_cwnd_at_tlp, rack_min_to, tcp_rack::rack_no_prr, rack_non_rxt_use_cr, rack_pace_every_seg, rack_pcb_zone, rack_per_of_gp_ca, rack_control::rack_per_of_gp_ca, rack_per_of_gp_probertt, rack_control::rack_per_of_gp_probertt, rack_per_of_gp_rec, rack_control::rack_per_of_gp_rec, rack_per_of_gp_ss, rack_control::rack_per_of_gp_ss, rack_pkt_delay, rack_probertt_filter_life, rack_rate_sample_method, tcp_rack::rack_rec_nonrxt_use_cr, rack_reorder_fade, rack_reorder_thresh, rack_req_measurements, RACK_RTTS_INIT, rack_send_a_lot_in_prr, rack_set_cc_pacing(), rack_set_pace_segments(), rack_set_profile(), rack_start_hpts_timer(), rack_stop_all_timers(), rack_tlp_thresh, rack_tlp_threshold_use, tcp_rack::rack_tlp_threshold_use, rack_to_usec_ts(), rack_use_cmp_acks, rack_use_imac_dack, tcp_rack::rc_allow_data_af_clo, tcp_rack::rc_always_pace, tcp_rack::rc_dack_mode, tcp_rack::rc_force_max_seg, rack_control::rc_free, tcp_rack::rc_gp_dyn_mul, rack_control::rc_gp_min_rtt, tcp_rack::rc_gp_no_rec_chg, rack_control::rc_high_rwnd, rack_control::rc_highest_us_rtt, tcp_rack::rc_init_win, rc_init_window(), tcp_rack::rc_inp, tcp_rack::rc_labc, rack_control::rc_last_time_decay, rack_control::rc_lower_rtt_us_cts, rack_control::rc_lowest_us_rtt, rack_control::rc_min_to, rack_control::rc_mtree, rack_control::rc_pkt_delay, rack_control::rc_prr_sendalot, tcp_rack::rc_rack_tmr_std_based, tcp_rack::rc_rack_use_dsack, rack_control::rc_rate_sample_method, rack_control::rc_reorder_fade, rack_control::rc_reorder_shift, rack_control::rc_saved_beta, rack_control::rc_time_of_last_probertt, rack_control::rc_time_probertt_starts, rack_control::rc_tlp_cwnd_reduce, rack_control::rc_tlp_rxt_last_time, rack_control::rc_tlp_threshold, rack_control::rc_tmap, tcp_rack::rc_tp, tcp_rack::rc_user_set_max_segs, rack_control::req_measurements, rack_control::roundends, SEQ_GT, tcpcb::snd_cwnd, tcpcb::snd_max, tcpcb::snd_ssthresh, tcpcb::snd_una, tcpcb::snd_wnd, rack_sendmap::soff, tcpcb::t_delayed_ack, tcpcb::t_fb_ptr, tcpcb::t_flags, tcpcb::t_flags2, tcpcb::t_inpcb, tcpcb::t_rttlow, tcpcb::t_rxtcur, tcp_can_enable_pacing(), tcp_get_usecs(), tcp_rexmit_slop, tcp_ts_getticks(), tcp_tv_to_mssectick(), tcp_tv_to_usectick(), TF_SENTFIN, rack_control::timer_slop, tcp_rack::use_fixed_rate, use_rack_rr, tcp_rack::use_rack_rr, V_newreno_beta_ecn, V_tcp_abc_l_var, and V_tcp_delack_enabled.
Definition at line 12327 of file rack.c.
References rack_control::fsb, tcp_rack::r_ctl, tcp_rack::r_fsb_inited, rack_fast_send_blk::tcp_ip_hdr, and rack_fast_send_blk::tcp_ip_hdr_len.
Referenced by rack_init().
Definition at line 12272 of file rack.c.
References rack_control::fsb, tcp_rack::r_ctl, tcp_rack::r_fsb_inited, tcp_rack::r_is_v6, tcp_rack::rc_inp, tcpcb::t_port, rack_fast_send_blk::tcp_ip_hdr, rack_fast_send_blk::tcp_ip_hdr_len, tcpip_fillheaders(), rack_fast_send_blk::th, rack_fast_send_blk::udp, udphdr::uh_dport, udphdr::uh_sport, and V_tcp_udp_tunneling_port.
Referenced by rack_output().
|
static |
Definition at line 776 of file rack.c.
References rack_ack_total, rack_alloc_limited_conns, rack_always_send_oldest, rack_apply_rtt_with_reduced_conf, rack_atexit_prtt, rack_atexit_prtt_hbp, rack_autosndbuf_inc, rack_bw_rate_cap, rack_clear_counter, rack_client_low_buf, rack_collapsed_win, rack_cwnd_block_ends_measure, rack_def_data_window, rack_def_profile, rack_default_init_window, rack_delayed_ack_time, rack_disable_prr, rack_do_dyn_mul, rack_do_hystart, rack_down_raise_thresh, rack_dsack_std_based, rack_enable_hw_pacing, rack_enable_mqueue_for_nonpaced, rack_enable_shared_cwnd, rack_enobuf_hw_boost_mult, rack_enobuf_hw_max, rack_enobuf_hw_min, rack_express_sack, rack_extended_rfo, rack_fto_rsm_send, rack_fto_send, rack_goal_bdp, rack_gp_decrease_per, rack_gp_increase_per, rack_gp_no_rec_chg, rack_gp_per_bw_mul_down, rack_gp_per_bw_mul_up, rack_gp_rtt_maxmul, rack_gp_rtt_mindiv, rack_gp_rtt_minmul, rack_hbp_thresh, rack_highest_move_thresh_seen, rack_highest_sack_thresh_seen, rack_hot_alloc, rack_hptsi_segments, rack_hw_pace_extra_slots, rack_hw_pace_init_fail, rack_hw_pace_lost, rack_hw_rate_caps, rack_hw_rate_min, rack_hw_rate_to_low, rack_hw_rwnd_factor, rack_hw_up_only, rack_ignore_data_after_close, rack_input_idle_reduces, rack_limit_time_with_srtt, rack_limited_retran, rack_limits_scwnd, rack_lower_cwnd_at_tlp, rack_max_abc_post_recovery, rack_max_drain_hbp, rack_max_drain_wait, rack_max_per_above, rack_min_measure_usec, rack_min_probertt_hold, rack_min_rtt_movement, rack_min_srtts, rack_min_to, rack_move_none, rack_move_some, rack_multi_single_eq, rack_must_drain, rack_nfto_resend, rack_non_fto_send, rack_non_rxt_use_cr, rack_opts_arry, RACK_OPTS_SIZE, rack_out_size, rack_pace_every_seg, rack_pace_one_seg, rack_per_lower_bound, rack_per_of_gp_ca, rack_per_of_gp_lowthresh, rack_per_of_gp_probertt, rack_per_of_gp_probertt_reduce, rack_per_of_gp_rec, rack_per_of_gp_ss, rack_per_upper_bound_ca, rack_per_upper_bound_ss, rack_persist_max, rack_persist_min, rack_persists_acks, rack_persists_loss, rack_persists_lost_ends, rack_persists_sends, rack_pkt_delay, rack_probe_rtt_safety_val, rack_probe_rtt_sets_cwnd, rack_probertt_clear_is, rack_probertt_filter_life, rack_probertt_gpsrtt_cnt_div, rack_probertt_gpsrtt_cnt_mul, rack_probertt_lower_within, rack_probertt_use_min_rtt_entry, rack_probertt_use_min_rtt_exit, rack_proc_non_comp_ack, rack_prr_addbackmax, rack_rate_sample_method, rack_reorder_fade, rack_reorder_thresh, rack_req_measurements, rack_req_segs, rack_rto_max, rack_rto_min, rack_rwnd_block_ends_measure, rack_sack_attacks_detected, rack_sack_attacks_reversed, rack_sack_not_required, rack_sack_proc_all, rack_sack_proc_restart, rack_sack_proc_short, rack_sack_skipped_acked, rack_sack_splits, rack_sack_total, rack_sack_used_next_merge, rack_sack_used_prev_merge, rack_saw_enetunreach, rack_saw_enobuf, rack_saw_enobuf_hw, rack_send_a_lot_in_prr, rack_slot_reduction, rack_split_limited, rack_stats_gets_ms_rtt, rack_sysctl_ctx, rack_sysctl_root, rack_time_between_probertt, rack_timely_dec_clear, rack_timely_int_timely_only, rack_timely_max_push_drop, rack_timely_max_push_rise, rack_timely_min_segs, rack_timely_no_stopping, rack_tlp_limit, rack_tlp_min, rack_tlp_newdata, rack_tlp_retran, rack_tlp_retran_bytes, rack_tlp_thresh, rack_tlp_threshold_use, rack_tlp_tot, rack_tlp_use_greater, rack_to_alloc, rack_to_alloc_emerg, rack_to_alloc_hard, rack_to_alloc_limited, rack_to_tot, rack_try_scwnd, rack_use_cmp_acks, rack_use_fsb, rack_use_imac_dack, rack_use_max_for_nobackoff, rack_use_rfo, rack_use_rsm_rfo, rack_verbose_logging, rack_wma_divisor, sysctl_rack_clear(), TCP_MSS_ACCT_SIZE, TLP_USE_TWO_ONE, use_rack_rr, and USE_RTT_LOW.
Referenced by tcp_addrack().
|
static |
Definition at line 9362 of file rack.c.
References rack_control::ack_count, BYTES_THIS_ACK, CC_NDUPACK, ctf_fixed_maxseg(), ctf_log_sack_filter(), rack_control::dsack_round_end, sackblk::end, IN_FASTRECOVERY, INP_WLOCK_ASSERT, PACE_PKT_OUTPUT, PROGRESS_UPDATE, tcp_rack::r_ctl, tcp_rack::r_early, rack_sendmap::r_end, tcp_rack::r_rr_config, rack_sendmap::r_start, tcp_rack::r_timer_override, tcp_rack::r_wanted_output, rack_ack_total, rack_cong_signal(), rack_do_decay(), rack_express_sack, rack_handle_might_revert(), rack_log_dsack_event(), rack_log_progress_event(), rack_log_to_prr(), rack_move_none, rack_move_some, tcp_rack::rack_no_prr, rack_note_dsack(), rack_proc_sack_blk(), rack_process_to_cumack(), rack_sack_total, rack_control::rack_sf, rack_timer_cancel(), rack_update_prr(), rack_control::rc_agg_early, tcp_rack::rc_dsack_round_seen, rack_control::rc_hpts_flags, tcp_rack::rc_inp, rack_control::rc_mtree, rack_control::rc_prr_sndcnt, rack_control::rc_rcvtime, rack_control::rc_resend, rack_control::rc_sacklast, rack_control::rc_tmap, tcp_rack::rc_tp, tcp_rack::sack_attack_disable, rack_control::sack_count, sack_filter_blks(), rack_control::sack_moved_extra, rack_control::sack_noextra_move, SEQ_GEQ, SEQ_GT, SEQ_LEQ, SEQ_LT, tcpcb::snd_max, tcpcb::snd_una, sackblk::start, tcpcb::t_acktime, tcpcb::t_fb_ptr, tcpcb::t_flags, tcpcb::t_inpcb, tcp_get_flags(), tcp_get_usecs(), tcp_in_hpts(), tcp_rack_output(), tcp_record_dsack(), tcpopt::to_flags, tcpopt::to_nsacks, tcpopt::to_sacks, and TOF_SACK.
Referenced by rack_fastack(), and rack_process_ack().
|
static |
Definition at line 2556 of file rack.c.
References BBR_LOG_TIMERCANC, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, inpcb::inp_socket, tcp_rack::rc_inp, tcp_rack::rc_tp, tcpcb::t_logstate, tcp_get_usecs(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_timer_start().
|
static |
Definition at line 2420 of file rack.c.
References tcp_log_bbr::applimited, BBR_LOG_DOSEG_DONE, ctf_flight_size(), tcp_log_bbr::delivered, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_log_bbr::inflight, tcp_log_bbr::inhpts, inpcb::inp_socket, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, tcp_rack::r_ent_rec_ns, tcp_rack::r_fast_output, tcp_rack::r_might_revert, tcp_rack::r_must_retran, tcp_rack::r_wanted_output, tcp_rack::rack_no_prr, tcp_rack::rc_ack_can_sendout_data, rack_control::rc_hpts_flags, tcp_rack::rc_in_persist, tcp_rack::rc_inp, rack_control::rc_out_at_rto, rack_control::rc_pace_min_segs, rack_control::rc_prr_sndcnt, rack_control::rc_sacked, rack_control::rc_snd_max_at_rto, tcp_rack::rc_tp, tcpcb::t_logstate, tcp_get_usecs(), tcp_in_hpts(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, tcp_log_stackspecific::u_bbr, and tcp_log_bbr::use_lt_bw.
Referenced by rack_do_compressed_ack_processing(), and rack_do_segment_nounlock().
|
static |
Definition at line 1916 of file rack.c.
References rack_control::dsack_persist, rack_control::dsack_round_end, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, inpcb::inp_socket, rack_control::num_dsack, tcp_rack::r_ctl, RACK_DSACK_HANDLING, tcp_rack::rc_dsack_round_seen, tcp_rack::rc_inp, tcp_rack::rc_rack_tmr_std_based, tcp_rack::rc_rack_use_dsack, tcp_rack::rc_tp, tcpcb::t_logstate, tcp_get_usecs(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_calc_thresh_rack(), rack_do_compressed_ack_processing(), rack_log_ack(), rack_note_dsack(), rack_post_recovery(), rack_proc_sack_blk(), rack_process_option(), rack_process_to_cumack(), rack_timeout_rxt(), and rack_timeout_tlp().
|
static |
Definition at line 15306 of file rack.c.
References tcp_log_bbr::applimited, tcp_log_bbr::bw_inuse, ctf_flight_size(), tcp_log_bbr::cwnd_gain, tcp_log_bbr::delivered, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_log_bbr::inflight, tcp_log_bbr::inhpts, tcp_log_bbr::lt_epoch, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, tcp_rack::r_fast_output, tcp_rack::r_fsb_inited, rack_get_bw(), rack_get_output_gain(), rack_control::rc_agg_early, tcp_rack::rc_inp, rack_control::rc_sacked, tcp_rack::rc_tp, tcpcb::rcv_numsacks, tcpcb::t_logstate, tcp_get_usecs(), tcp_in_hpts(), tcp_log_event_(), TCP_LOG_FSB, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_output().
|
static |
Definition at line 1954 of file rack.c.
References tcp_log_bbr::applimited, BBR_LOG_HDWR_PACE, tcp_log_bbr::bw_inuse, rack_control::crte, rack_control::crte_prev_rate, tcp_log_bbr::cur_del_rate, tcp_log_bbr::delRate, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, inpcb::inp_route, inpcb::inp_socket, rack_control::last_hw_bw_req, tcp_log_bbr::pkts_out, tcp_hwrate_limit_table::ptbl, tcp_rack::r_ctl, tcp_rack::rack_hdrw_pacing, tcp_hwrate_limit_table::rate, tcp_rack::rc_inp, rack_control::rc_pace_max_segs, tcp_rack::rc_tp, tcp_rate_set::rs_ifp, tcp_log_bbr::rttProp, tcpcb::t_logstate, tcpcb::t_maxseg, tcp_get_usecs(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, tcp_log_stackspecific::u_bbr, and tcp_rack::use_fixed_rate.
Referenced by pace_to_fill_cwnd(), rack_get_output_bw(), and rack_get_pacing_delay().
|
static |
Definition at line 5467 of file rack.c.
References tcp_log_bbr::applimited, BBR_LOG_HPTSDIAG, tcp_log_bbr::bw_inuse, hpts_diag::co_ret, tcp_log_bbr::cur_del_rate, tcp_log_bbr::delivered, tcp_log_bbr::delRate, tcp_log_bbr::epoch, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, hpts_diag::have_slept, hpts_diag::hpts_sleep_time, tcp_log_bbr::inflight, hpts_diag::inp_hptsslot, inpcb::inp_socket, tcp_log_bbr::lt_epoch, hpts_diag::maxslots, hpts_diag::need_new_to, hpts_diag::p_cur_slot, hpts_diag::p_curtick, hpts_diag::p_hpts_active, hpts_diag::p_lasttick, hpts_diag::p_nxt_slot, hpts_diag::p_on_min_sleep, hpts_diag::p_prev_slot, hpts_diag::p_runningslot, tcp_log_bbr::pkts_out, rack_verbose_logging, tcp_rack::rc_inp, tcp_rack::rc_tp, tcp_log_bbr::rttProp, hpts_diag::slot_remaining, hpts_diag::slot_req, tcpcb::t_logstate, TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, tcp_log_stackspecific::u_bbr, hpts_diag::wheel_cts, hpts_diag::wheel_slot, and hpts_diag::yet_to_sleep.
Referenced by rack_start_hpts_timer().
|
static |
Definition at line 13020 of file rack.c.
References tcp_ackent::ack, tcp_log_bbr::applimited, tcp_log_bbr::bw_inuse, ctf_flight_size(), tcp_log_bbr::cur_del_rate, tcp_log_bbr::cwnd_gain, tcp_log_bbr::delivered, tcp_log_bbr::delRate, tcp_log_bbr::epoch, tcp_ackent::flags, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, HAS_TSTMP, HPTS_USEC_IN_SEC, tcp_log_bbr::inflight, tcp_log_bbr::inhpts, inpcb::inp_socket, tcp_log_bbr::lost, tcp_log_bbr::lt_epoch, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkt_epoch, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, tcp_rack::r_ent_rec_ns, tcp_rack::r_might_revert, tcp_rack::rack_no_prr, rack_control::rc_hpts_flags, tcp_rack::rc_inp, rack_control::rc_num_maps_alloced, rack_control::rc_prr_sndcnt, rack_control::rc_sacked, tcp_log_bbr::rttProp, tcp_ackent::seq, SEQ_GT, tcpcb::snd_una, tcpcb::t_inpcb, tcpcb::t_logstate, tcpcb::t_maxseg, tcp_get_usecs(), tcp_in_hpts(), TCP_LOG_EVENTP, TCP_LOG_IN, TCP_LOG_STATE_OFF, tcp_set_flags(), tcp_tv_to_usectick(), tcp_log_bbr::timeStamp, tcp_ackent::timestamp, tcp_ackent::ts_echo, tcp_ackent::ts_value, TSTMP_HDWR, TSTMP_LRO, tcp_log_stackspecific::u_bbr, tcp_log_bbr::use_lt_bw, and tcp_ackent::win.
Referenced by rack_do_compressed_ack_processing().
|
static |
Definition at line 2167 of file rack.c.
References tcp_log_bbr::applimited, ctf_flight_size(), tcp_log_bbr::cur_del_rate, tcp_log_bbr::delRate, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_log_bbr::inflight, tcp_log_bbr::inhpts, inpcb::inp_socket, tcp_log_bbr::lost, next, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, rack_sendmap::r_end, rack_sendmap::r_start, tcp_rack::rack_no_prr, rack_verbose_logging, tcp_rack::rc_inp, rack_control::rc_prr_sndcnt, rack_control::rc_sacked, tcp_rack::rc_tp, tcp_log_bbr::rttProp, tcpcb::t_logstate, tcp_get_usecs(), tcp_in_hpts(), TCP_LOG_EVENTP, TCP_LOG_MAPCHG, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_collapsed_window(), rack_log_output(), rack_merge_rsm(), rack_proc_sack_blk(), rack_process_to_cumack(), rack_timeout_tlp(), and rack_update_entry().
|
static |
Definition at line 7158 of file rack.c.
References ctf_fixed_maxseg(), ctf_flight_size(), IN_FASTRECOVERY, INP_WLOCK_ASSERT, tcpcb::iss, rack_sendmap::m, MAP_NEW, MAP_SPLIT, rack_sendmap::orig_m_len, tcp_rack::r_ctl, rack_sendmap::r_dupack, rack_sendmap::r_end, rack_sendmap::r_fas, rack_sendmap::r_flags, rack_sendmap::r_hw_tls, rack_sendmap::r_in_tmap, rack_sendmap::r_one_out_nr, rack_sendmap::r_rtr_bytes, rack_sendmap::r_rtr_cnt, rack_sendmap::r_start, rack_sendmap::r_tim_lastsent, rack_alloc(), rack_alloc_full_limit(), rack_clone_rsm(), RACK_HAS_FIN, RACK_HAS_SYN, rack_log_map_chg(), rack_log_retran_reason(), rack_update_entry(), rack_update_rsm(), rack_control::rc_mtree, rack_control::rc_prr_out, rack_control::rc_sacked, rack_control::rc_tmap, tcp_rack::rc_tp, SEQ_GEQ, SEQ_LEQ, SEQ_LT, tcpcb::snd_max, tcpcb::snd_nxt, tcpcb::snd_una, rack_sendmap::soff, tcpcb::t_fb_ptr, tcpcb::t_flags, and tcpcb::t_inpcb.
Referenced by rack_fast_output(), rack_fast_rsm_output(), and rack_output().
|
static |
Definition at line 14555 of file rack.c.
References tcp_rack::app_limited_needs_set, tcp_log_bbr::applimited, BBR_LOG_HPTSI_CALC, tcp_log_bbr::bbr_substate, tcp_log_bbr::bw_inuse, ctf_flight_size(), tcp_log_bbr::cur_del_rate, tcp_log_bbr::cwnd_gain, rack_control::cwnd_to_use, tcp_log_bbr::delRate, tcp_log_bbr::epoch, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, rack_control::gp_bw, tcp_rack::gp_ready, tcp_rack::in_probe_rtt, tcp_log_bbr::inflight, inpcb::inp_socket, tcp_log_bbr::lost, tcp_log_bbr::lt_epoch, tcp_rack::measure_saw_probe_rtt, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkt_epoch, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, tcp_rack::r_early, tcp_rack::r_late, rack_get_bw(), rack_get_output_gain(), rack_control::rack_per_of_gp_ca, rack_control::rack_per_of_gp_rec, rack_control::rack_per_of_gp_ss, tcp_rack::rc_ack_can_sendout_data, rack_control::rc_agg_delayed, rack_control::rc_agg_early, tcp_rack::rc_gp_filled, tcp_rack::rc_gp_saw_ca, tcp_rack::rc_gp_saw_rec, tcp_rack::rc_gp_saw_ss, tcp_rack::rc_inp, rack_control::rc_pace_max_segs, rack_control::rc_pace_min_segs, rack_control::rc_probertt_sndmax_atexit, rack_control::rc_rack_min_rtt, rack_control::rc_sacked, tcp_rack::rc_tp, tcp_log_bbr::rttProp, tcpcb::snd_ssthresh, tcpcb::t_logstate, tcp_get_usecs(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, tcp_log_stackspecific::u_bbr, and tcp_log_bbr::use_lt_bw.
Referenced by pace_to_fill_cwnd(), rack_do_compressed_ack_processing(), rack_do_goodput_measurement(), rack_do_segment_nounlock(), rack_get_pacing_delay(), rack_need_set_test(), rack_output(), rack_process_option(), rack_process_timers(), rack_start_gp_measurement(), rack_start_hpts_timer(), rack_timeout_rxt(), rack_timeout_tlp(), and rack_update_seg().
|
inlinestatic |
Definition at line 2365 of file rack.c.
References BBR_LOG_PROGRESS, ctf_flight_size(), tcp_log_bbr::delivered, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex8, tcp_log_bbr::inflight, tcp_log_bbr::inhpts, inpcb::inp_socket, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, tcp_rack::r_must_retran, rack_verbose_logging, tcp_rack::rc_inp, rack_control::rc_out_at_rto, rack_control::rc_sacked, rack_control::rc_snd_max_at_rto, tcp_rack::rc_tp, tcpcb::t_acktime, tcpcb::t_logstate, tcpcb::t_maxunacktime, tcp_get_usecs(), tcp_in_hpts(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_do_close_wait(), rack_do_closing(), rack_do_compressed_ack_processing(), rack_do_established(), rack_do_fin_wait_1(), rack_do_fin_wait_2(), rack_do_lastack(), rack_fast_output(), rack_fastack(), rack_log_ack(), rack_output(), rack_process_ack(), rack_timeout_persist(), rack_timeout_rxt(), and rack_timeout_tlp().
|
static |
Definition at line 2057 of file rack.c.
References BBR_LOG_SETTINGS_CHG, ctf_flight_size(), tcp_log_bbr::delivered, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex8, tcp_log_bbr::inflight, tcp_log_bbr::inhpts, inpcb::inp_socket, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, rack_sendmap::r_dupack, rack_sendmap::r_end, rack_sendmap::r_flags, tcp_rack::r_must_retran, rack_sendmap::r_start, rack_verbose_logging, tcp_rack::rc_inp, rack_control::rc_out_at_rto, rack_control::rc_sacked, rack_control::rc_snd_max_at_rto, tcp_rack::rc_tp, tcpcb::t_logstate, tcp_get_usecs(), tcp_in_hpts(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_log_output(), rack_proc_sack_blk(), rack_process_to_cumack(), rack_remxt_tmr(), rack_strike_dupack(), rack_update_entry(), rack_update_rsm(), and tcp_rack_output().
Definition at line 2286 of file rack.c.
References rack_control::ack_count, rack_control::act_rcv_time, tcp_log_bbr::applimited, tcp_log_bbr::bw_inuse, rack_rtt_sample::confidence, ctf_flight_size(), tcp_log_bbr::delivered, tcp_log_bbr::delRate, tcp_log_bbr::epoch, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, HPTS_USEC_IN_SEC, tcp_log_bbr::inflight, inpcb::inp_socket, tcp_log_bbr::lost, tcp_log_bbr::lt_epoch, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkt_epoch, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, tcp_rack::r_must_retran, RACK_REXMTVAL, rack_control::rack_rs, rack_rto_max, rack_rto_min, tcp_rack::rc_inp, rack_control::rc_out_at_rto, rack_control::rc_sacked, rack_control::rc_snd_max_at_rto, tcp_rack::rc_tp, rack_rtt_sample::rs_us_rtt, tcp_log_bbr::rttProp, tcp_rack::sack_attack_disable, rack_control::sack_count, rack_control::sack_moved_extra, rack_control::sack_noextra_move, tcpcb::t_logstate, tcpcb::t_rxtcur, tcp_get_usecs(), TCP_LOG_EVENTP, TCP_LOG_RTT, TCP_LOG_STATE_OFF, tcp_rexmit_slop, rack_control::timer_slop, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by tcp_rack_xmit_timer_commit().
|
static |
Definition at line 2340 of file rack.c.
References tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex7, inpcb::inp_socket, rack_verbose_logging, tcp_rack::rc_inp, tcp_rack::rc_tp, tcpcb::t_logstate, tcp_get_usecs(), TCP_LOG_EVENTP, TCP_LOG_RTT, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_do_syn_recv(), rack_do_syn_sent(), and rack_update_rtt().
|
static |
Definition at line 3419 of file rack.c.
References rack_control::act_rcv_time, tcp_log_bbr::applimited, BBR_LOG_RTT_SHRINKS, ctf_flight_size(), tcp_log_bbr::cur_del_rate, tcp_log_bbr::cwnd_gain, tcp_log_bbr::delivered, tcp_log_bbr::delRate, tcp_log_bbr::epoch, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_rack::forced_ack, tcp_rack::in_probe_rtt, tcp_log_bbr::inflight, inpcb::inp_socket, tcp_log_bbr::lost, tcp_log_bbr::lt_epoch, tcp_rack::measure_saw_probe_rtt, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkt_epoch, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, rack_get_bw(), rack_control::rack_per_of_gp_ca, rack_control::rack_per_of_gp_probertt, rack_control::rack_per_of_gp_rec, rack_control::rack_per_of_gp_ss, rack_control::rc_entry_gp_rtt, tcp_rack::rc_gp_dyn_mul, rack_control::rc_gp_min_rtt, rack_control::rc_gp_srtt, rack_control::rc_highest_us_rtt, tcp_rack::rc_highly_buffered, tcp_rack::rc_inp, rack_control::rc_lower_rtt_us_cts, rack_control::rc_lowest_us_rtt, rack_control::rc_prev_gp_srtt, rack_control::rc_rtt_diff, rack_control::rc_sacked, rack_control::rc_target_probertt_flight, rack_control::rc_time_probertt_entered, rack_control::rc_time_probertt_starts, tcp_rack::rc_tp, tcp_log_bbr::rttProp, tcpcb::t_logstate, tcp_get_usecs(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_apply_updated_usrtt(), rack_check_probe_rtt(), rack_enter_probertt(), rack_exit_probertt(), rack_init(), and tcp_rack_xmit_timer_commit().
|
static |
Definition at line 2216 of file rack.c.
References rack_control::act_rcv_time, tcp_rack::app_limited_needs_set, tcp_log_bbr::applimited, BBR_LOG_BBRRTT, tcp_log_bbr::bw_inuse, ctf_flight_size(), tcp_log_bbr::cur_del_rate, tcp_log_bbr::cwnd_gain, tcp_log_bbr::delivered, tcp_log_bbr::delRate, tcp_log_bbr::epoch, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_rack::forced_ack, tcp_rack::in_probe_rtt, tcp_log_bbr::inflight, tcp_log_bbr::inhpts, inpcb::inp_socket, tcpcb::iss, tcp_log_bbr::lost, tcp_log_bbr::lt_epoch, tcp_rack::measure_saw_probe_rtt, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkt_epoch, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, rack_sendmap::r_end, rack_sendmap::r_flags, rack_sendmap::r_rtr_cnt, rack_sendmap::r_start, rack_sendmap::r_tim_lastsent, rack_control::rack_rs, tcp_rack::rc_dragged_bottom, tcp_rack::rc_gp_dyn_mul, tcp_rack::rc_gp_filled, rack_control::rc_gp_srtt, tcp_rack::rc_highly_buffered, tcp_rack::rc_inp, rack_control::rc_lower_rtt_us_cts, rack_control::rc_rack_min_rtt, rack_control::rc_rate_sample_method, rack_control::rc_sacked, rack_control::rc_target_probertt_flight, rack_control::rc_time_probertt_entered, rack_control::rc_time_probertt_starts, tcp_rack::rc_tp, rack_rtt_sample::rs_flags, rack_rtt_sample::rs_rtt_highest, rack_rtt_sample::rs_rtt_lowest, rack_rtt_sample::rs_rtt_tot, rack_rtt_sample::rs_us_rtrcnt, tcp_log_bbr::rttProp, tcpcb::t_logstate, tcp_get_usecs(), tcp_in_hpts(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_tv_to_usectick(), tcp_log_bbr::timeStamp, tcp_log_stackspecific::u_bbr, and tcp_log_bbr::use_lt_bw.
Referenced by tcp_rack_xmit_timer().
|
static |
Definition at line 7959 of file rack.c.
References tcp_rack::r_ctl, rack_sendmap::r_flags, RACK_ACKED, RACK_SACK_PASSED, and rack_control::rc_tmap.
Referenced by rack_proc_sack_blk().
|
static |
Definition at line 3003 of file rack.c.
References tcp_log_bbr::bw_inuse, ctf_flight_size(), tcp_log_bbr::cur_del_rate, tcp_log_bbr::cwnd_gain, tcp_log_bbr::delRate, tcp_log_bbr::epoch, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_log_bbr::inflight, inpcb::inp_socket, tcp_log_bbr::lost, tcp_log_bbr::lt_epoch, tcp_log_bbr::pkt_epoch, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, rack_get_bw(), rack_control::rack_per_of_gp_ca, rack_control::rack_per_of_gp_rec, rack_control::rack_per_of_gp_ss, tcp_rack::rc_dragged_bottom, tcp_rack::rc_gp_bwred, tcp_rack::rc_gp_incr, tcp_rack::rc_gp_saw_ca, tcp_rack::rc_gp_saw_rec, tcp_rack::rc_gp_saw_ss, rack_control::rc_gp_srtt, tcp_rack::rc_gp_timely_dec_cnt, tcp_rack::rc_gp_timely_inc_cnt, tcp_rack::rc_inp, rack_control::rc_loss_count, rack_control::rc_prev_gp_srtt, rack_control::rc_rtt_diff, rack_control::rc_sacked, tcp_rack::rc_tp, tcp_log_bbr::rttProp, tcpcb::t_logstate, tcp_get_usecs(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, TCP_TIMELY_WORK, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_bw_can_be_raised(), rack_decrease_bw_mul(), rack_increase_bw_mul(), rack_make_timely_judgement(), and rack_update_multiplier().
|
static |
Definition at line 2522 of file rack.c.
References tcp_log_bbr::applimited, BBR_LOG_TIMERCANC, ctf_flight_size(), tcp_log_bbr::delivered, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_log_bbr::inflight, tcp_log_bbr::inhpts, inpcb::inp_socket, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, tcp_rack::r_must_retran, tcp_rack::rack_no_prr, rack_control::rc_hpts_flags, tcp_rack::rc_inp, rack_control::rc_last_output_to, rack_control::rc_out_at_rto, rack_control::rc_prr_sndcnt, rack_control::rc_sacked, rack_control::rc_snd_max_at_rto, tcp_rack::rc_tp, tcpcb::t_logstate, tcpcb::t_rxtcur, tcp_in_hpts(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_timer_cancel().
|
static |
Definition at line 2134 of file rack.c.
References BBR_LOG_RTO, ctf_flight_size(), tcp_log_bbr::delivered, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex5, tcp_log_bbr::flex8, tcp_log_bbr::inflight, tcp_log_bbr::inhpts, inpcb::inp_socket, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, rack_sendmap::r_end, tcp_rack::r_must_retran, rack_sendmap::r_start, tcp_rack::rack_no_prr, tcp_rack::rc_inp, rack_control::rc_out_at_rto, rack_control::rc_prr_sndcnt, rack_control::rc_rack_min_rtt, tcp_rack::rc_rack_rtt, rack_control::rc_sacked, rack_control::rc_snd_max_at_rto, tcp_rack::rc_tp, tcpcb::t_logstate, tcp_get_usecs(), tcp_in_hpts(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_remxt_tmr(), rack_timeout_delack(), rack_timeout_keepalive(), rack_timeout_persist(), rack_timeout_rack(), and rack_timeout_tlp().
|
static |
Definition at line 2589 of file rack.c.
References BBR_LOG_TO_PROCESS, ctf_flight_size(), tcp_log_bbr::delivered, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::inflight, inpcb::inp_socket, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, tcp_rack::r_must_retran, tcp_rack::rack_no_prr, rack_control::rc_hpts_flags, tcp_rack::rc_inp, rack_control::rc_out_at_rto, rack_control::rc_prr_sndcnt, rack_control::rc_sacked, rack_control::rc_snd_max_at_rto, rack_control::rc_timer_exp, tcp_rack::rc_tp, tcpcb::t_logstate, tcp_get_usecs(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_process_timers().
|
static |
Definition at line 2619 of file rack.c.
References BBR_LOG_BBRUPD, ctf_flight_size(), tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex8, tcp_log_bbr::inflight, inpcb::inp_socket, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, tcp_rack::r_ent_rec_ns, tcp_rack::r_might_revert, tcp_rack::rack_no_prr, rack_control::rc_holes_rxt, tcp_rack::rc_inp, rack_control::rc_prr_delivered, rack_control::rc_prr_out, rack_control::rc_prr_recovery_fs, rack_control::rc_prr_sndcnt, rack_control::rc_sacked, tcp_rack::rc_tp, tcpcb::t_logstate, tcp_get_usecs(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, tcp_log_stackspecific::u_bbr, and tcp_log_bbr::use_lt_bw.
Referenced by rack_cong_signal(), rack_handle_might_revert(), rack_log_ack(), rack_post_recovery(), rack_remxt_tmr(), rack_timeout_tlp(), and rack_update_prr().
|
static |
Definition at line 2098 of file rack.c.
References BBR_LOG_TIMERSTAR, ctf_flight_size(), tcp_log_bbr::delivered, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_log_bbr::inflight, tcp_log_bbr::inhpts, inpcb::inp_hptsslot, inpcb::inp_socket, tcp_log_bbr::lost, tcp_log_bbr::lt_epoch, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, tcp_rack::r_must_retran, tcp_rack::rack_no_prr, rack_rto_min, rack_control::rc_hpts_flags, tcp_rack::rc_in_persist, tcp_rack::rc_inp, rack_control::rc_out_at_rto, rack_control::rc_prr_sndcnt, rack_control::rc_sacked, rack_control::rc_snd_max_at_rto, tcp_rack::rc_tp, tcpcb::t_logstate, tcpcb::t_rxtcur, tcpcb::t_rxtshift, tcpcb::t_srtt, tcp_get_usecs(), tcp_in_hpts(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_start_hpts_timer().
|
static |
Definition at line 2392 of file rack.c.
References BBR_LOG_BBRSND, ctf_flight_size(), tcp_log_bbr::delivered, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_log_bbr::inflight, tcp_log_bbr::inhpts, inpcb::inp_socket, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, tcp_rack::r_must_retran, tcp_rack::rack_no_prr, rack_control::rc_hpts_flags, tcp_rack::rc_in_persist, tcp_rack::rc_inp, rack_control::rc_out_at_rto, rack_control::rc_prr_sndcnt, rack_control::rc_sacked, rack_control::rc_snd_max_at_rto, tcp_rack::rc_tp, tcpcb::t_logstate, tcp_in_hpts(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_start_hpts_timer().
|
static |
Definition at line 2489 of file rack.c.
References BBR_LOG_JUSTRET, ctf_flight_size(), tcp_log_bbr::delivered, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_log_bbr::inflight, tcp_log_bbr::inhpts, inpcb::inp_socket, tcp_log_bbr::lt_epoch, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, tcp_rack::r_must_retran, tcp_rack::rack_no_prr, rack_control::rc_hpts_flags, tcp_rack::rc_in_persist, tcp_rack::rc_inp, rack_control::rc_out_at_rto, rack_control::rc_prr_sndcnt, rack_control::rc_sacked, rack_control::rc_snd_max_at_rto, tcp_rack::rc_tp, tcpcb::t_logstate, tcp_get_usecs(), tcp_in_hpts(), TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_output().
|
static |
Definition at line 2461 of file rack.c.
References tcp_log_bbr::applimited, ctf_flight_size(), tcp_log_bbr::delivered, tcp_log_bbr::flex1, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex8, tcp_log_bbr::inflight, inpcb::inp_socket, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, tcp_rack::r_must_retran, rack_control::rc_out_at_rto, rack_control::rc_pace_max_segs, rack_control::rc_pace_min_segs, rack_control::rc_sacked, rack_control::rc_snd_max_at_rto, tcp_rack::rc_tp, tcpcb::t_inpcb, tcpcb::t_logstate, tcp_get_usecs(), TCP_HDWR_PACE_SIZE, TCP_LOG_EVENTP, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_set_pace_segments().
|
static |
Definition at line 5506 of file rack.c.
References tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex8, inpcb::inp_socket, rack_verbose_logging, tcp_rack::rc_inp, tcp_rack::rc_tp, tcpcb::t_logstate, tcp_get_usecs(), TCP_LOG_EVENTP, TCP_LOG_SB_WAKE, TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, and tcp_log_stackspecific::u_bbr.
Referenced by rack_do_compressed_ack_processing(), rack_do_fastnewdata(), rack_fastack(), rack_process_ack(), and rack_process_data().
|
static |
Definition at line 3974 of file rack.c.
References tcp_rack::r_ctl, rack_gp_rtt_maxmul, rack_gp_rtt_mindiv, rack_gp_rtt_minmul, rack_log_timely(), and rack_control::rc_gp_min_rtt.
Referenced by rack_do_goodput_measurement().
|
static |
Definition at line 5958 of file rack.c.
References MAP_MERGE, tcp_rack::r_ctl, rack_sendmap::r_dupack, rack_sendmap::r_end, rack_sendmap::r_flags, rack_sendmap::r_in_tmap, rack_sendmap::r_limit_type, rack_sendmap::r_rtr_bytes, RACK_APP_LIMITED, rack_free(), RACK_HAS_FIN, rack_log_map_chg(), RACK_RWND_COLLAPSED, RACK_TLP, rack_control::rc_first_appl, rack_control::rc_mtree, rack_control::rc_tmap, and tcp_rack::rc_tp.
Referenced by rack_proc_sack_blk().
|
static |
Definition at line 19145 of file rack.c.
References ctf_fixed_maxseg(), ctf_flight_size(), tcp_rack::r_ctl, tcp_rack::r_fast_output, rack_sendmap::r_flags, tcp_rack::r_must_retran, RACK_MUST_RXT, rack_remxt_tmr(), rack_set_pace_segments(), rack_control::rack_sf, rack_control::rc_out_at_rto, rack_control::rc_pace_min_segs, rack_control::rc_sacked, rack_control::rc_snd_max_at_rto, rack_control::rc_tmap, sack_filter_clear(), tcpcb::snd_max, tcpcb::snd_nxt, tcpcb::snd_una, and tcpcb::t_fb_ptr.
|
static |
Definition at line 7993 of file rack.c.
References rack_control::act_rcv_time, tcp_rack::app_limited_needs_set, ctf_fixed_maxseg(), tcpcb::gput_ack, tcpcb::gput_seq, tcpcb::gput_ts, tcp_rack::in_probe_rtt, inpcb::inp_socket, tcp_rack::measure_saw_probe_rtt, MIN_GP_WIN, tcp_rack::r_ctl, rack_sendmap::r_end, rack_sendmap::r_rtr_cnt, rack_sendmap::r_start, rack_sendmap::r_tim_lastsent, rack_get_measure_window(), rack_log_pacing_delay_calc(), RACK_USE_BEG, RACK_USE_END, RACK_USE_END_OR_THACK, tcp_rack::rc_gp_filled, rack_control::rc_gp_output_ts, rc_init_window(), rack_control::rc_probertt_sndmax_atexit, SEQ_GEQ, SEQ_GT, tcpcb::t_flags, tcpcb::t_inpcb, tcp_tv_to_usectick(), and TF_GPUTINPROG.
Referenced by rack_proc_sack_blk(), and rack_process_to_cumack().
|
static |
Definition at line 9233 of file rack.c.
References rack_control::dsack_byte_cnt, rack_control::dsack_persist, rack_control::dsack_round_end, IN_FASTRECOVERY, rack_control::last_sent_tlp_len, rack_control::last_sent_tlp_seq, rack_control::last_tlp_acked_end, rack_control::last_tlp_acked_start, rack_control::num_dsack, tcp_rack::r_ctl, tcp_rack::r_might_revert, rack_handle_might_revert(), rack_log_dsack_event(), tcp_rack::rc_dsack_round_seen, tcp_rack::rc_last_sent_tlp_seq_valid, tcp_rack::rc_last_tlp_acked_set, tcp_rack::rc_tp, rack_control::retran_during_recovery, SEQ_GEQ, SEQ_GT, SEQ_LEQ, tcpcb::snd_max, and tcpcb::t_flags.
Referenced by rack_log_ack().
|
static |
Definition at line 16474 of file rack.c.
References tcp_rack::alloc_limit_reported, tcp_log_bbr::applimited, tcp_log_bbr::bw_inuse, CC_NDUPACK, tcpcb::client, CNT_OF_MSS_OUT, rack_control::crte, ctf_fixed_maxseg(), ctf_flight_size(), CTF_JR_APP_LIMITED, CTF_JR_ASSESSING, CTF_JR_CWND_LIMITED, CTF_JR_PRR, CTF_JR_RWND_LIMITED, CTF_JR_SENT_DATA, ctf_outstanding(), rack_control::cwnd_to_use, tcp_log_bbr::delivered, tcp_rack::do_detection, ERRNO_UNK, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_rack::forced_ack, rack_control::fsb, tcp_rack::gp_ready, tcpcb::gput_ack, tcpcb::gput_seq, rack_fast_send_blk::hoplimit, HPTS_USEC_IN_MSEC, rack_fast_send_blk::hw_tls, inpcb::in6p_outputopts, IN_FASTRECOVERY, tcp_rack::in_probe_rtt, in_pseudo(), tcp_log_bbr::inflight, tcp_log_bbr::inhpts, inpcb::inp_hpts_calls, inpcb::inp_inc, INP_IPV6, INP_IPV6PROTO, inpcb::inp_options, inpcb::inp_route, inpcb::inp_route6, inpcb::inp_socket, inpcb::inp_vflag, INP_WLOCK_ASSERT, IP_DF, ip::ip_dst, ip::ip_len, IP_MAXPACKET, IP_NO_SND_TAG_RL, ip::ip_off, ip_output(), ip::ip_tos, ip::ip_ttl, ip::ip_v, IPPROTO_TCP, IPPROTO_UDP, IPTOS_ECN_MASK, IPVERSION, IS_FASTOPEN, tcpcb::iss, KMOD_TCPSTAT_ADD, KMOD_TCPSTAT_INC, tcpcb::last_ack_sent, rack_control::last_sent_tlp_len, rack_control::last_sent_tlp_seq, rack_fast_send_blk::left_to_send, tcp_log_bbr::lt_epoch, rack_fast_send_blk::m, tcpcb::max_sndwnd, MIN_GP_WIN, rack_fast_send_blk::o_m_len, rack_fast_send_blk::off, PACE_PKT_OUTPUT, PACE_TMR_MASK, tcp_log_bbr::pacing_gain, tcp_log_bbr::pkts_out, PROGRESS_START, tcp_rack::r_ctl, tcp_rack::r_early, rack_sendmap::r_end, tcp_rack::r_ent_rec_ns, tcp_rack::r_fast_output, rack_sendmap::r_flags, tcp_rack::r_fsb_inited, tcp_rack::r_is_v6, rack_sendmap::r_just_ret, tcp_rack::r_late, tcp_rack::r_must_retran, rack_sendmap::r_nseq_appl, tcp_rack::r_rr_config, rack_sendmap::r_start, tcp_rack::r_state, tcp_rack::r_timer_override, tcp_rack::r_wanted_output, rack_alloc(), rack_alloc_limited_conns, RACK_APP_LIMITED, tcp_rack::rack_attempted_scwnd, rack_cc_after_idle(), rack_cong_signal(), rack_cwnd_block_ends_measure, tcp_rack::rack_enable_scwnd, rack_enter_persist(), rack_exit_probertt(), rack_fast_output(), rack_fast_rsm_output(), rack_free_cache, rack_get_bw(), rack_get_output_gain(), rack_get_pacing_delay(), RACK_HAD_PUSH, RACK_HAS_FIN, RACK_HAS_SYN, rack_hw_rwnd_factor, rack_init_fsb_block(), rack_log_fsb(), rack_log_output(), rack_log_pacing_delay_calc(), rack_log_progress_event(), rack_log_type_just_return(), rack_min_probertt_hold, RACK_MUST_RXT, rack_nfto_resend, tcp_rack::rack_no_prr, rack_non_fto_send, rack_out_size, rack_process_timers(), rack_rwnd_block_ends_measure, rack_saw_enetunreach, rack_saw_enobuf, rack_saw_enobuf_hw, tcp_rack::rack_scwnd_is_idle, RACK_SENT_SP, RACK_SENT_W_DSACK, rack_set_state(), rack_sndbuf_autoscale(), rack_start_gp_measurement(), rack_start_hpts_timer(), rack_timer_cancel(), RACK_TLP, rack_tlp_retran, rack_tlp_retran_bytes, rack_to_alloc_limited, rack_to_usec_ts(), rack_try_scwnd, rack_use_fsb, rack_use_rfo, rack_use_rsm_rfo, rack_what_can_we_send(), tcp_rack::rc_ack_can_sendout_data, rack_control::rc_agg_delayed, rack_control::rc_agg_early, tcp_rack::rc_always_pace, rack_control::rc_app_limited_cnt, rack_control::rc_end_appl, tcp_rack::rc_enobuf, rack_control::rc_first_appl, rack_control::rc_free, tcp_rack::rc_free_cnt, tcp_rack::rc_gp_saw_ca, tcp_rack::rc_gp_saw_rec, tcp_rack::rc_gp_saw_ss, rack_control::rc_gp_srtt, rack_control::rc_high_rwnd, rack_control::rc_hpts_flags, tcp_rack::rc_in_persist, tcp_rack::rc_inp, rack_control::rc_last_output_to, tcp_rack::rc_last_sent_tlp_past_cumack, tcp_rack::rc_last_sent_tlp_seq_valid, rack_control::rc_loss_count, rack_control::rc_lower_rtt_us_cts, rack_control::rc_min_to, rack_control::rc_mtree, rack_control::rc_num_maps_alloced, rack_control::rc_out_at_rto, rack_control::rc_pace_max_segs, rack_control::rc_pace_min_segs, rack_control::rc_prr_sendalot, rack_control::rc_prr_sndcnt, rack_control::rc_rcvtime, rack_control::rc_resend, rack_control::rc_sacked, rack_control::rc_scw_index, rack_control::rc_snd_max_at_rto, rack_control::rc_time_of_last_probertt, rack_control::rc_time_probertt_entered, rack_control::rc_time_probertt_starts, rack_control::rc_tlp_cnt_out, tcp_rack::rc_tlp_in_progress, rack_control::rc_tlp_new_data, rack_control::rc_tlp_rxt_last_time, rack_control::rc_tlpsend, rack_control::rc_tmap, tcp_rack::rc_tp, tcp_rack::rc_user_set_max_segs, rack_control::rc_went_idle_time, tcpcb::rcv_adv, tcpcb::rcv_numsacks, tcpcb::rcv_nxt, tcpcb::rcv_scale, rack_fast_send_blk::recwin, tcpcb::request_r_scale, rack_control::retran_during_recovery, tcpcb::rfbuf_ts, rack_fast_send_blk::rfo_apply_push, in_addr::s_addr, tcpcb::sackblks, SEQ_GEQ, SEQ_GT, SEQ_LEQ, SEQ_LT, tcpcb::server, SND_BLOCKED, tcpcb::snd_cwnd, SND_LIMITED, tcpcb::snd_max, tcpcb::snd_nxt, SND_OUT_ACK, SND_OUT_DATA, SND_OUT_FAIL, tcpcb::snd_ssthresh, tcpcb::snd_una, tcpcb::snd_up, tcpcb::snd_wnd, tcpcb::t_acktime, tcpcb::t_fb_ptr, tcpcb::t_flags, tcpcb::t_flags2, tcpcb::t_idle_reduce, tcpcb::t_inpcb, tcpcb::t_lib, tcpcb::t_logstate, tcpcb::t_maxseg, tcpcb::t_port, tcpcb::t_rcvtime, tcpcb::t_rtseq, tcpcb::t_rtttime, tcpcb::t_rxtcur, tcpcb::t_rxtshift, tcpcb::t_sndrexmitpack, tcpcb::t_sndzerowin, tcpcb::t_softerror, tcpcb::t_state, tcpcb::t_stats, tcpcb::t_tfo_client_cookie_len, tcpcb::t_tfo_cookie, tcpcb::t_tsomax, tcpcb::t_tsomaxsegcount, tcpcb::t_tsomaxsegsize, tcp_account_for_send(), tcp_addoptions(), tcp_clean_dsack_blocks(), tcp_dsack_block_exists(), tcp_ecn_output_established(), tcp_ecn_output_syn_sent(), TCP_EI_STATUS_SERVER_FIN, TCP_EI_STATUS_SERVER_RST, TCP_FASTOPEN_COOKIE_LEN, rack_fast_send_blk::tcp_flags, tcp_get_usecs(), tcp_hpts_remove(), tcp_in_hpts(), rack_fast_send_blk::tcp_ip_hdr, rack_fast_send_blk::tcp_ip_hdr_len, tcp_log_end_status(), tcp_log_event_(), TCP_LOG_OUT, TCP_LOG_STATE_OFF, tcp_m_copym(), TCP_MSS_ACCT_ATIMER, TCP_MSS_ACCT_INPACE, TCP_MSS_ACCT_JUSTRET, TCP_MSS_ACCT_PERSIST, TCP_MSS_ACCT_SNDACK, tcp_mss_update(), tcp_mssopt(), tcp_offload_output(), TCP_PROBE5, tcp_rack_output(), tcp_rl_log_enobuf(), tcp_set_flags(), tcp_ts_getticks(), tcp_tv_to_mssectick(), tcpip_fillheaders(), TCPS_CLOSED, TCPS_ESTABLISHED, TCPS_HAVEESTABLISHED, TCPS_HAVERCVDFIN, TCPS_HAVERCVDSYN, TCPS_SYN_RECEIVED, TCPS_SYN_SENT, TF2_ECN_PERMIT, TF2_ECN_SND_ECE, TF2_PLPMTU_MAXSEGSNT, TF2_PLPMTU_PMTUD, TF_ACKNOW, TF_DELACK, TF_GPUTINPROG, TF_LASTIDLE, TF_MORETOCOME, TF_NEEDFIN, TF_NEEDSYN, TF_NODELAY, TF_NOOPT, TF_NOPUSH, TF_RCVD_TSTMP, TF_REQ_SCALE, TF_REQ_TSTMP, TF_RXWIN0SENT, TF_SACK_PERMIT, TF_SENTFIN, TF_SIGNATURE, TF_TOE, TF_TSO, TF_WASCRECOVERY, TF_WASFRECOVERY, rack_fast_send_blk::th, tcp_log_bbr::timeStamp, tcp_log_buffer::tlb_errno, tcpopt::to_flags, tcpopt::to_mss, tcpopt::to_nsacks, tcpopt::to_sacks, tcpopt::to_signature, tcpopt::to_tfo_cookie, tcpopt::to_tfo_len, tcpopt::to_tsecr, tcpopt::to_tsval, tcpopt::to_wscale, TOF_FASTOPEN, TOF_MSS, TOF_SACK, TOF_SACKPERM, TOF_SCALE, TOF_SIGNATURE, TOF_TS, tcpcb::ts_offset, tcpcb::ts_recent, TSTMP_GEQ, TSTMP_GT, tcp_log_stackspecific::u_bbr, rack_fast_send_blk::udp, UDPSTAT_INC, udphdr::uh_dport, udphdr::uh_sport, udphdr::uh_sum, udphdr::uh_ulen, tcp_rack::use_rack_rr, V_path_mtu_discovery, V_tcp_do_ecn, V_tcp_do_tso, V_tcp_map_entries_limit, V_tcp_minmss, V_tcp_udp_tunneling_overhead, V_tcp_udp_tunneling_port, VOI_TCP_RETXPB, and VOI_TCP_TXPB.
Referenced by rack_process_option().
|
inlinestatic |
Definition at line 8722 of file rack.c.
References tcp_rack::r_ctl, rack_sendmap::r_end, rack_sendmap::r_flags, rack_sendmap::r_in_tmap, rack_sendmap::r_start, RACK_ACKED, RACK_SACK_PASSED, rack_control::rack_sf, RACK_WAS_SACKPASS, rack_control::rc_mtree, rack_control::rc_sacked, rack_control::rc_tmap, and sack_filter_clear().
Referenced by rack_process_to_cumack().
Definition at line 4645 of file rack.c.
References BBR_LOG_CWND, cc_var::bytes_this_ack, CC_ALGO, tcpcb::ccv, ctf_fixed_maxseg(), ctf_outstanding(), cc_var::curack, rack_control::dsack_persist, EXIT_RECOVERY, cc_var::flags, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, inpcb::inp_socket, INP_WLOCK_ASSERT, tcp_rack::no_prr_addback, cc_var::nsegs, rack_control::num_dsack, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, rack_log_dsack_event(), rack_log_to_prr(), tcp_rack::rack_no_prr, rack_prr_addbackmax, rack_verbose_logging, rack_control::rc_prr_sndcnt, tcp_rack::rc_tp, tcpcb::snd_cwnd, tcpcb::snd_recover, tcpcb::snd_ssthresh, tcpcb::snd_una, tcpcb::t_fb_ptr, tcpcb::t_flags, tcpcb::t_inpcb, tcpcb::t_logstate, tcp_get_usecs(), tcp_log_event_(), TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, tcp_log_stackspecific::u_bbr, V_tcp_abc_l_var, and V_tcp_do_newsack.
Referenced by rack_do_compressed_ack_processing(), and rack_process_ack().
|
static |
Need to split this in two pieces the before and after, the before remains in the map, the after must be added. In other words we have: rsm |-----------—| sackblk |----—> rsm will become rsm |—| and nrsm will be the sacked piece nrsm |-------—|
But before we start down that path lets see if the sack spans over on top of the next guy and it is already sacked.
So the next one is already acked, and we can thus by hookery use our stack_map to reflect the piece being sacked and then adjust the two tree entries moving the start and ends around. So we start like: rsm |---------—| (not-acked) next |--------—| (acked) sackblk |-----—> We want to end like so: rsm |---—| (not-acked) next |--------------—| (acked) nrsm |--—| Where nrsm is a temporary stack piece we use to update all the gizmos.
We can't use any hookery here, so we need to split the map. We enter like so: rsm |-----—| sackblk |--—> We will add the new block nrsm and that will be the new portion, and then fall through after reseting rsm. So we split and look like this: rsm |-—| sackblk |--—> nrsm |—| We then fall through reseting rsm to nrsm, so the next block picks it up.
The end of this block is either beyond this guy or right at this guy. I.e.: rsm — |--—| end |--—| <or> end |------—|
The end of this sack block is smaller than our rsm i.e.: rsm — |--—| end |–|
Goal, we want the right remainder of rsm to shrink in place and span from (rsm->r_start = end) to rsm->r_end. We want to expand prev to go all the way to prev->r_end <- end. so in the tree we have before: prev |-----—| (acked) rsm |----—| (non-acked) sackblk |-| We churn it so we end up with prev |-------—| (acked) rsm |--—| (non-acked) nrsm |-| (temporary)
Note if either prev/rsm is a TLP we don't do this.
This is the case where our previous block is not acked either, so we must split the block in two.
In this case nrsm becomes nrsm->r_start = end; nrsm->r_end = rsm->r_end; which is un-acked. <and> rsm->r_end = nrsm->r_start; i.e. the remaining un-acked piece is left on the left hand side.
So we start like this rsm |-------—| (not acked) sackblk |—| build it so we have rsm |—| (acked) nrsm |---—| (not acked)
Definition at line 8136 of file rack.c.
References rack_control::act_rcv_time, tcp_rack::app_limited_needs_set, sackblk::end, is_rsm_inside_declared_tlp_block(), rack_control::last_tlp_acked_end, rack_control::last_tlp_acked_start, MAP_SACK_M1, MAP_SACK_M2, MAP_SACK_M3, MAP_SACK_M4, MAP_SACK_M5, next, rack_sendmap::r_ack_arrival, tcp_rack::r_ctl, rack_sendmap::r_dupack, rack_sendmap::r_end, rack_sendmap::r_flags, rack_sendmap::r_in_tmap, rack_sendmap::r_just_ret, rack_sendmap::r_rtr_cnt, rack_sendmap::r_start, RACK_ACKED, rack_alloc_limit(), rack_clone_rsm(), RACK_LIMIT_TYPE_SPLIT, rack_log_dsack_event(), rack_log_map_chg(), rack_log_retran_reason(), rack_log_sack_passed(), rack_merge_rsm(), rack_need_set_test(), RACK_SACK_PASSED, rack_sack_proc_all, rack_sack_proc_short, rack_sack_skipped_acked, rack_sack_splits, rack_sack_used_next_merge, rack_sack_used_prev_merge, rack_setup_offset_for_rsm(), RACK_TLP, rack_to_usec_ts(), rack_update_rtt(), RACK_USE_END, tcp_rack::rc_last_tlp_acked_set, tcp_rack::rc_last_tlp_past_cumack, rack_control::rc_mtree, rack_control::rc_reorder_ts, rack_control::rc_sacked, rack_control::rc_sacklast, rack_control::rc_tmap, SACKED, SEQ_GEQ, SEQ_GT, SEQ_LT, tcpcb::snd_una, and sackblk::start.
Referenced by rack_log_ack().
|
static |
Definition at line 10005 of file rack.c.
References __ctf_do_dropafterack(), rack_control::act_rcv_time, BANDLIM_UNLIMITED, BYTES_THIS_ACK, CC_ACK, CC_RTO_ERR, rack_control::challenge_ack_cnt, rack_control::challenge_ack_ts, ctf_do_dropwithreset(), ctf_fixed_maxseg(), rack_control::dsack_byte_cnt, tcp_rack::gp_ready, IN_FASTRECOVERY, tcp_rack::in_probe_rtt, IN_RECOVERY, inpcb::inp_socket, INP_WLOCK_ASSERT, KMOD_TCPSTAT_ADD, PACE_PKT_OUTPUT, PACE_TMR_RXT, tcp_rack::probe_not_answered, PROGRESS_CLEAR, tcp_rack::r_ctl, tcp_rack::r_wanted_output, rack_ack_received(), rack_adjust_sendmap(), rack_check_bottom_drag(), rack_cong_signal(), rack_log_ack(), rack_log_progress_event(), rack_log_wakeup(), rack_post_recovery(), RACK_REXMTVAL, rack_rto_max, rack_rto_min, rack_control::rack_sf, rack_strike_dupack(), RACK_TCPT_RANGESET, rack_timer_cancel(), tcp_rack::rc_always_pace, tcp_rack::rc_gp_dyn_mul, rack_control::rc_hpts_flags, tcp_rack::rc_in_persist, rack_control::rc_rcvtime, rack_control::rc_reorder_ts, rack_control::rc_tlp_cnt_out, tcp_rack::rc_tlp_in_progress, tcp_rack::rc_tp, rack_control::rc_went_idle_time, tcpcb::rcv_scale, tcpcb::request_r_scale, rack_control::retran_during_recovery, sack_filter_clear(), SEQ_GEQ, SEQ_GT, SEQ_LEQ, SEQ_LT, tcpcb::snd_max, tcpcb::snd_nxt, tcpcb::snd_recover, tcpcb::snd_una, tcpcb::snd_wnd, tcpcb::t_acktime, tcpcb::t_badrxtwin, tcpcb::t_fb_ptr, tcpcb::t_flags, tcpcb::t_flags2, tcpcb::t_inpcb, tcpcb::t_rxtcur, tcpcb::t_rxtshift, tcpcb::t_state, tcp_close(), TCP_EI_STATUS_SERVER_RST, tcp_get_usecs(), tcp_log_end_status(), tcp_rack_partialack(), tcp_tv_to_usectick(), TCPS_FIN_WAIT_1, TF2_DROP_AF_DATA, TF_NEEDSYN, TF_PREVVALID, TF_RCVD_SCALE, TF_RCVD_TSTMP, TF_REQ_SCALE, TF_SENTFIN, rack_control::timer_slop, tcpopt::to_flags, tcpopt::to_nsacks, TOF_SACK, and tcp_rack::use_fixed_rate.
Referenced by rack_do_close_wait(), rack_do_closing(), rack_do_established(), rack_do_fin_wait_1(), rack_do_fin_wait_2(), rack_do_lastack(), rack_do_syn_recv(), and rack_do_syn_sent().
|
static |
Definition at line 10389 of file rack.c.
References ctf_outstanding(), sackblk::end, inpcb::inp_socket, INP_WLOCK_ASSERT, IS_FASTOPEN, KMOD_TCPSTAT_ADD, KMOD_TCPSTAT_INC, tcpcb::max_sndwnd, tcp_rack::r_ctl, tcp_rack::r_wanted_output, rack_collapsed_window(), rack_enter_persist(), rack_exit_persist(), rack_handle_delayed_ack(), rack_log_wakeup(), RACK_OPTS_INC, rack_timer_cancel(), rack_un_collapse_window(), rack_validate_fo_sendwin_up(), tcp_rack::rc_has_collapsed, rack_control::rc_high_rwnd, tcp_rack::rc_in_persist, rack_control::rc_pace_min_segs, rack_control::rc_rcvtime, tcpcb::rcv_numsacks, tcpcb::rcv_nxt, tcpcb::rcv_up, tcpcb::sackblks, SEGQ_EMPTY, SEQ_GT, SEQ_LT, tcpcb::snd_max, tcpcb::snd_nxt, tcpcb::snd_una, tcpcb::snd_wl1, tcpcb::snd_wl2, tcpcb::snd_wnd, sackblk::start, tcpcb::t_fb_ptr, tcpcb::t_fbyte_in, tcpcb::t_fbyte_out, tcpcb::t_flags, tcpcb::t_flags2, tcpcb::t_inpcb, tcpcb::t_starttime, tcpcb::t_state, tcp_get_flags(), tcp_reass(), tcp_state_change(), tcp_twstart(), tcp_update_dsack_list(), tcp_update_sack_list(), TCPS_CLOSE_WAIT, TCPS_CLOSING, TCPS_ESTABLISHED, TCPS_FIN_WAIT_1, TCPS_FIN_WAIT_2, TCPS_HAVEESTABLISHED, TCPS_HAVERCVDFIN, TCPS_SYN_RECEIVED, TF2_DROP_AF_DATA, TF2_FBYTES_COMPLETE, TF_ACKNOW, TF_DELACK, TF_NEEDSYN, TF_SACK_PERMIT, and TF_WAKESOR.
Referenced by rack_do_close_wait(), rack_do_closing(), rack_do_established(), rack_do_fin_wait_1(), rack_do_fin_wait_2(), rack_do_lastack(), rack_do_syn_recv(), and rack_do_syn_sent().
|
static |
Definition at line 19394 of file rack.c.
References newreno::beta, newreno::beta_ecn, rack_control::bw_rate_cap, CC_ALGO, tcpcb::cc_algo, CC_NEWRENO_BETA, CC_NEWRENO_BETA_ECN, CC_NEWRENO_BETA_ECN_ENABLED, CCALGONAME_NEWRENO, CCF_HYSTART_ALLOWED, CCF_HYSTART_CAN_SH_CWND, CCF_HYSTART_CONS_SSTH, tcpcb::ccv, rack_control::crte, tcp_rack::defer_options, tcp_rack::do_detection, tcp_rack::fast_rsm_hack, cc_var::flags, tcp_rack::gp_ready, rack_control::init_rate, inpcb::inp_flags2, INP_MBUF_ACKCMP, INP_SUPPORTS_MBUFQ, tcpcb::iss, cc_algo::name, cc_newreno_opts::name, newreno::newreno_flags, tcp_rack::no_prr_addback, tcp_rack::r_ctl, tcp_rack::r_fill_less_agg, tcp_rack::r_limit_scw, tcp_rack::r_mbuf_queue, tcp_rack::r_rack_hw_rate_caps, tcp_rack::r_rr_config, tcp_rack::r_up_only, tcp_rack::r_use_cmp_ack, tcp_rack::r_use_labc_for_rec, tcp_rack::rack_attempt_hdwr_pace, rack_default_init_window, rack_do_hystart, tcp_rack::rack_enable_scwnd, rack_gp_rtt_maxmul, tcp_rack::rack_hdrw_pacing, tcp_rack::rack_hdw_pace_ena, RACK_HYSTART_ON, RACK_HYSTART_ON_W_SC, rack_log_dsack_event(), rack_log_pacing_delay_calc(), tcp_rack::rack_no_prr, RACK_OPTS_INC, rack_output(), rack_control::rack_per_of_gp_ca, rack_control::rack_per_of_gp_rec, rack_control::rack_per_of_gp_ss, tcp_rack::rack_rec_nonrxt_use_cr, RACK_REXMTVAL, rack_rto_max, rack_rto_min, rack_set_cc_pacing(), rack_set_pace_segments(), rack_set_profile(), RACK_TCPT_RANGESET, tcp_rack::rack_tlp_threshold_use, rack_undo_cc_pacing(), rack_update_seg(), tcp_rack::rc_allow_data_af_clo, tcp_rack::rc_always_pace, rack_control::rc_early_recovery_segs, rack_control::rc_fixed_pacing_rate_ca, rack_control::rc_fixed_pacing_rate_rec, rack_control::rc_fixed_pacing_rate_ss, tcp_rack::rc_force_max_seg, tcp_rack::rc_gp_dyn_mul, tcp_rack::rc_init_win, rc_init_window(), tcp_rack::rc_inp, tcp_rack::rc_labc, rack_control::rc_min_to, rack_control::rc_no_push_at_mrtt, tcp_rack::rc_pace_fill_if_rttin_range, tcp_rack::rc_pace_to_cwnd, tcp_rack::rc_pacing_cc_set, rack_control::rc_pkt_delay, rack_control::rc_prr_sendalot, tcp_rack::rc_rack_tmr_std_based, tcp_rack::rc_rack_use_dsack, rack_control::rc_rate_sample_method, rack_control::rc_reorder_fade, rack_control::rc_reorder_shift, rack_control::rc_saved_beta, rack_control::rc_tlp_cwnd_reduce, rack_control::rc_tlp_threshold, tcp_rack::rc_tp, tcp_rack::rc_user_set_max_segs, rack_control::req_measurements, tcp_rack::rtt_limit_mul, SEQ_GT, tcpcb::snd_cwnd, tcpcb::snd_max, tcpcb::t_delayed_ack, tcpcb::t_flags, tcpcb::t_inpcb, tcpcb::t_maxpeakrate, tcpcb::t_rxtcur, tcpcb::t_srtt, tcpcb::t_state, tcp_can_enable_pacing(), tcp_decrement_paced_conn(), tcp_rel_pacing_rate(), TCPS_HAVEESTABLISHED, TF_ACKNOW, TF_DELACK, rack_control::timer_slop, TLP_USE_ID, TLP_USE_TWO_TWO, tcp_rack::use_fixed_rate, tcp_rack::use_rack_rr, USE_RTT_AVG, USE_RTT_HIGH, USE_RTT_LOW, and cc_newreno_opts::val.
Referenced by rack_apply_deferred_options(), and rack_set_sockopt().
|
static |
Definition at line 6844 of file rack.c.
References tcpcb::gput_ack, tcpcb::gput_seq, HPTS_MS_TO_SLOTS, inpcb::inp_socket, PACE_PKT_OUTPUT, PACE_TMR_DELACK, PACE_TMR_KEEP, PACE_TMR_MASK, PACE_TMR_PERSIT, PACE_TMR_RACK, PACE_TMR_RXT, PACE_TMR_TLP, tcp_rack::r_ctl, tcp_rack::r_fast_output, rack_log_pacing_delay_calc(), rack_log_to_processing(), rack_timeout_delack(), rack_timeout_keepalive(), rack_timeout_persist(), rack_timeout_rack(), rack_timeout_rxt(), rack_timeout_tlp(), rack_control::rc_gp_srtt, rack_control::rc_hpts_flags, tcp_rack::rc_on_min_to, rack_control::rc_timer_exp, rack_control::rc_tlp_rxt_last_time, tcp_rack::rc_tmr_stopped, SEQ_GT, tcpcb::snd_una, tcpcb::t_flags, tcpcb::t_inpcb, tcpcb::t_state, tcp_hpts_insert, TCPS_FIN_WAIT_1, TCPS_LISTEN, TF_GPUTINPROG, and TSTMP_LT.
Referenced by rack_output().
|
static |
Definition at line 8816 of file rack.c.
References rack_control::act_rcv_time, tcp_rack::app_limited_needs_set, CC_RTO_ERR, CUM_ACKED, is_rsm_inside_declared_tlp_block(), tcpcb::iss, rack_control::last_sent_tlp_len, rack_control::last_sent_tlp_seq, rack_control::last_tlp_acked_end, rack_control::last_tlp_acked_start, rack_sendmap::m, MAP_FREE, MAP_TRIM_HEAD, rack_sendmap::orig_m_len, rack_sendmap::r_ack_arrival, tcp_rack::r_ctl, rack_sendmap::r_dupack, rack_sendmap::r_end, tcp_rack::r_ent_rec_ns, rack_sendmap::r_flags, rack_sendmap::r_in_tmap, tcp_rack::r_might_revert, rack_sendmap::r_rtr_bytes, rack_sendmap::r_rtr_cnt, rack_sendmap::r_start, tcp_rack::r_state, rack_sendmap::r_tim_lastsent, tcp_rack::r_wanted_output, RACK_ACKED, rack_adjust_orig_mlen(), rack_cong_signal(), rack_free(), rack_log_dsack_event(), rack_log_map_chg(), rack_log_retran_reason(), rack_need_set_test(), rack_peer_reneges(), RACK_SACK_PASSED, RACK_TLP, RACK_TO_REXT, rack_to_usec_ts(), rack_ts_to_msec(), rack_update_rtt(), RACK_USE_BEG, RACK_USE_END_OR_THACK, rack_control::rc_gp_cumack_ts, rack_control::rc_holes_rxt, tcp_rack::rc_last_sent_tlp_past_cumack, tcp_rack::rc_last_sent_tlp_seq_valid, tcp_rack::rc_last_tlp_acked_set, tcp_rack::rc_last_tlp_past_cumack, rack_control::rc_mtree, rack_control::rc_reorder_ts, rack_control::rc_sacked, rack_control::rc_tmap, SEQ_GEQ, SEQ_GT, SEQ_LT, tcpcb::snd_max, tcpcb::snd_nxt, tcpcb::snd_una, rack_sendmap::soff, tcpcb::t_flags, tcpcb::t_state, TF_PREVVALID, TF_RCVD_TSTMP, TF_SENTFIN, tcpopt::to_flags, tcpopt::to_tsecr, and TOF_TS.
Referenced by rack_do_compressed_ack_processing(), and rack_log_ack().
|
static |
|
static |
Definition at line 6410 of file rack.c.
References ctf_flight_size(), tcp_rack::r_ctl, rack_sendmap::r_dupack, tcp_rack::r_early, rack_sendmap::r_flags, rack_sendmap::r_in_tmap, tcp_rack::r_late, tcp_rack::r_must_retran, tcp_rack::r_state, tcp_rack::r_timer_override, RACK_ACKED, rack_log_retran_reason(), rack_log_to_event(), rack_log_to_prr(), RACK_MUST_RXT, RACK_SACK_PASSED, rack_set_state(), rack_timer_cancel(), RACK_TO_FRM_TMR, RACK_TO_REXT, RACK_WAS_ACKED, RACK_WAS_SACKPASS, rack_control::rc_agg_delayed, rack_control::rc_agg_early, rack_control::rc_last_timeout_snduna, rack_control::rc_mtree, rack_control::rc_out_at_rto, rack_control::rc_prr_sndcnt, rack_control::rc_resend, rack_control::rc_sacked, rack_control::rc_sacklast, rack_control::rc_snd_max_at_rto, rack_control::rc_tmap, tcp_rack::rc_tp, tcp_rack::sack_attack_disable, tcpcb::snd_max, tcpcb::snd_una, tcpcb::t_fb_ptr, tcpcb::t_flags, tcpcb::t_state, tcp_get_usecs(), TF_SACK_PERMIT, and TF_SENTFIN.
Referenced by rack_mtu_change(), and rack_timeout_rxt().
|
static |
Definition at line 551 of file rack.c.
References BBR_LOG_CWND, newreno::beta, newreno::beta_ecn, CC_ALGO, tcpcb::cc_algo, cc_var::cc_data, CC_NEWRENO_BETA, CC_NEWRENO_BETA_ECN, CC_NEWRENO_BETA_ECN_ENABLED, CCALGONAME_NEWRENO, tcpcb::ccv, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_rack::gp_ready, cc_algo::name, cc_newreno_opts::name, newreno::newreno_flags, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, rack_verbose_logging, tcp_rack::rc_pacing_cc_set, rack_control::rc_prr_sndcnt, rack_control::rc_saved_beta, tcp_rack::rc_tp, tcpcb::t_logstate, tcp_get_usecs(), tcp_log_event_(), TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, tcp_log_stackspecific::u_bbr, tcp_rack::use_fixed_rate, V_newreno_beta_ecn, and cc_newreno_opts::val.
Referenced by rack_check_bottom_drag(), rack_do_goodput_measurement(), rack_init(), rack_process_option(), and rack_set_profile().
|
static |
Definition at line 12195 of file rack.c.
References rack_control::crte, ctf_fixed_maxseg(), rack_control::gp_bw, rack_control::init_rate, PACE_MAX_IP_BYTES, tcp_rack::r_ctl, rack_get_bw(), rack_get_output_bw(), rack_get_pacing_len(), rack_log_type_pacing_sizes(), tcp_hwrate_limit_table::rate, tcp_rack::rc_always_pace, tcp_rack::rc_force_max_seg, rc_init_window(), rack_control::rc_pace_max_segs, rack_control::rc_pace_min_segs, tcp_rack::rc_tp, tcp_rack::rc_user_set_max_segs, tcpcb::t_maxpeakrate, tcp_get_pacing_burst_size(), and tcp_rack::use_fixed_rate.
Referenced by rack_check_bottom_drag(), rack_do_goodput_measurement(), rack_do_segment_nounlock(), rack_get_pacing_delay(), rack_init(), rack_mtu_change(), rack_process_option(), rack_set_state(), and rack_update_seg().
|
static |
Definition at line 19179 of file rack.c.
References tcp_rack::gp_ready, inpcb::inp_flags2, INP_MBUF_ACKCMP, INP_SUPPORTS_MBUFQ, tcp_rack::r_ctl, tcp_rack::r_fill_less_agg, tcp_rack::r_limit_scw, tcp_rack::r_mbuf_queue, tcp_rack::r_rr_config, tcp_rack::r_use_cmp_ack, tcp_rack::rack_attempt_hdwr_pace, rack_disable_prr, rack_do_dyn_mul, rack_dsack_std_based, rack_enable_hw_pacing, rack_enable_mqueue_for_nonpaced, tcp_rack::rack_enable_scwnd, rack_enable_shared_cwnd, rack_gp_no_rec_chg, tcp_rack::rack_hdw_pace_ena, rack_limits_scwnd, tcp_rack::rack_no_prr, rack_pace_every_seg, rack_per_of_gp_ca, rack_control::rack_per_of_gp_ca, rack_control::rack_per_of_gp_rec, rack_set_cc_pacing(), rack_undo_cc_pacing(), rack_use_cmp_acks, tcp_rack::rc_always_pace, tcp_rack::rc_gp_dyn_mul, tcp_rack::rc_gp_no_rec_chg, tcp_rack::rc_inp, rack_control::rc_no_push_at_mrtt, tcp_rack::rc_pace_fill_if_rttin_range, tcp_rack::rc_pace_to_cwnd, tcp_rack::rc_rack_tmr_std_based, tcp_rack::rc_rack_use_dsack, tcp_rack::rc_tp, tcp_rack::rtt_limit_mul, tcpcb::t_state, tcp_can_enable_pacing(), tcp_decrement_paced_conn(), TCPS_HAVEESTABLISHED, and tcp_rack::use_fixed_rate.
Referenced by rack_init(), and rack_process_option().
Definition at line 3470 of file rack.c.
References HPTS_USEC_IN_SEC, tcp_rack::r_ctl, rack_get_bw(), rack_timely_min_segs, and rack_control::rc_target_probertt_flight.
Referenced by rack_enter_probertt(), and rack_exit_probertt().
|
static |
Definition at line 20090 of file rack.c.
References __tcp_rack, tcp_rack::defer_options, rack_control::fsb, tcp_rack::gp_ready, INP_DROPPED, inpcb::inp_flags, inpcb::inp_flow, inpcb::inp_ip_tos, inpcb::inp_ip_ttl, INP_IPV6PROTO, INP_TIMEWAIT, inpcb::inp_vflag, INP_WLOCK, INP_WUNLOCK, intotcpcb, ip::ip_tos, ip::ip_ttl, IPPROTO_IP, IPV6_FLOWINFO_MASK, tcp_rack::r_ctl, rack_add_deferred_option(), rack_process_option(), tcp_rack::rc_inp, tcpcb::t_fb, tcpcb::t_fb_ptr, tcp6_use_min_mtu(), tcp_default_ctloutput(), and rack_fast_send_blk::tcp_ip_hdr.
Referenced by rack_ctloutput().
Definition at line 12825 of file rack.c.
References inpcb::inp_flags2, INP_IPV6, INP_MBUF_ACKCMP, inpcb::inp_vflag, tcp_rack::r_is_v6, tcp_rack::r_state, tcp_rack::r_substate, tcp_rack::r_use_cmp_ack, rack_do_close_wait(), rack_do_closing(), rack_do_established(), rack_do_fin_wait_1(), rack_do_fin_wait_2(), rack_do_lastack(), rack_do_syn_recv(), rack_do_syn_sent(), rack_set_pace_segments(), tcp_rack::rc_inp, tcpcb::t_inpcb, tcpcb::t_state, TCPS_CLOSE_WAIT, TCPS_CLOSED, TCPS_CLOSING, TCPS_ESTABLISHED, TCPS_FIN_WAIT_1, TCPS_FIN_WAIT_2, TCPS_HAVEESTABLISHED, TCPS_LAST_ACK, TCPS_LISTEN, TCPS_SYN_RECEIVED, TCPS_SYN_SENT, and TCPS_TIME_WAIT.
Referenced by rack_do_compressed_ack_processing(), rack_do_segment_nounlock(), rack_output(), rack_remxt_tmr(), rack_timeout_rack(), and rack_timeout_tlp().
|
static |
Definition at line 5889 of file rack.c.
References rack_sendmap::m, rack_sendmap::orig_m_len, rack_sendmap::r_end, rack_sendmap::r_start, rack_adjust_orig_mlen(), and rack_sendmap::soff.
Referenced by rack_clone_rsm(), and rack_proc_sack_blk().
|
static |
Definition at line 16004 of file rack.c.
References rack_control::cwnd_to_use, inpcb::inp_socket, tcp_rack::r_ctl, rack_autosndbuf_inc, tcp_rack::rc_inp, tcp_rack::rc_tp, tcpcb::snd_nxt, tcpcb::snd_una, tcpcb::snd_wnd, V_tcp_autosndbuf_inc, V_tcp_autosndbuf_max, and V_tcp_do_autosndbuf.
Referenced by rack_fast_output(), and rack_output().
|
static |
Definition at line 15064 of file rack.c.
References rack_control::act_rcv_time, tcp_rack::app_limited_needs_set, ctf_fixed_maxseg(), tcpcb::gput_ack, tcpcb::gput_seq, tcpcb::gput_ts, tcp_rack::in_probe_rtt, rack_control::init_rate, inpcb::inp_socket, tcp_rack::measure_saw_probe_rtt, MIN_GP_WIN, rack_sendmap::r_ack_arrival, tcp_rack::r_ctl, rack_sendmap::r_end, rack_sendmap::r_flags, rack_sendmap::r_rtr_cnt, rack_sendmap::r_start, rack_sendmap::r_tim_lastsent, RACK_ACKED, rack_get_measure_window(), rack_log_pacing_delay_calc(), rack_to_usec_ts(), rack_control::rc_app_limited_cnt, rack_control::rc_first_appl, tcp_rack::rc_gp_filled, rack_control::rc_gp_high_rwnd, rack_control::rc_gp_lowrtt, rack_control::rc_gp_output_ts, rc_init_window(), rack_control::rc_mtree, rack_control::rc_probertt_sndmax_atexit, tcp_rack::rc_tp, SEQ_GEQ, SEQ_LT, tcpcb::snd_wnd, tcpcb::t_flags, tcpcb::t_inpcb, tcpcb::t_state, tcp_get_usecs(), tcp_tv_to_usectick(), TCPS_ESTABLISHED, TCPS_FIN_WAIT_1, and TF_GPUTINPROG.
Referenced by rack_fast_output(), and rack_output().
|
static |
Turn off all the flags for queuing by default. The flags have important meanings to what happens when LRO interacts with the transport. Most likely (by default now) mbuf_queueing and ack compression are on. So the transport has a couple of flags that control what happens (if those are not on then these flags won't have any effect since it won't go through the queuing LRO path).
INP_MBUF_QUEUE_READY - This flags says that I am busy pacing output, so don't disturb. But it also means LRO can wake me if there is a SACK arrival.
INP_DONT_SACK_QUEUE - This flag is used in conjunction with the above flag (QUEUE_READY) and when present it says don't even wake me if a SACK arrives.
The idea behind these flags is that if we are pacing we set the MBUF_QUEUE_READY and only get woken up if a SACK arrives (which could change things) or if our pacing timer expires. If, however, we have a rack timer running, then we don't even want a sack to wake us since the rack timer has to expire before we can send.
Other cases should usually have none of the flags set so LRO can call into us.
Definition at line 5527 of file rack.c.
References delayed_ack, tcp_rack::gp_ready, HPTS_TICKS_PER_SLOT, HPTS_USEC_TO_SLOTS, tcp_rack::in_probe_rtt, INP_DONT_SACK_QUEUE, inpcb::inp_flags2, INP_MBUF_QUEUE_READY, inpcb::inp_socket, PACE_PKT_OUTPUT, PACE_TMR_DELACK, PACE_TMR_KEEP, PACE_TMR_MASK, PACE_TMR_RACK, PACE_TMR_RXT, PACE_TMR_TLP, tcp_rack::r_ctl, tcp_rack::r_early, tcp_rack::r_late, tcp_rack::r_rr_config, rack_log_hpts_diag(), rack_log_pacing_delay_calc(), rack_log_to_start(), rack_log_type_bbrsnd(), rack_min_probertt_hold, rack_timer_start(), tcp_rack::rc_ack_can_sendout_data, rack_control::rc_agg_delayed, rack_control::rc_agg_early, rack_control::rc_hpts_flags, rack_control::rc_last_output_to, rack_control::rc_timer_exp, tcp_rack::rc_tmr_stopped, tcp_rack::sack_attack_disable, SEQ_GT, tcpcb::snd_max, tcpcb::snd_una, tcpcb::t_flags, tcpcb::t_inpcb, tcpcb::t_state, tcp_delacktime, tcp_get_usecs(), tcp_hpts_insert_diag(), tcp_in_hpts(), TCPS_CLOSED, TCPS_CLOSING, TCPS_HAVEESTABLISHED, TCPS_LISTEN, TF_DELACK, TP_KEEPIDLE, TP_KEEPINIT, TSTMP_GT, tcp_rack::use_fixed_rate, tcp_rack::use_rack_rr, and V_tcp_always_keepalive.
Referenced by rack_do_segment_nounlock(), rack_fast_output(), rack_init(), rack_output(), rack_timeout_keepalive(), rack_timeout_persist(), rack_timeout_rack(), and rack_timer_audit().
|
static |
Definition at line 7017 of file rack.c.
References tcp_rack::rc_in_persist, tcpcb::t_fb_ptr, tcp_timer_active(), tcp_timer_suspend(), TT_DELACK, TT_KEEP, TT_PERSIST, and TT_REXMT.
Referenced by rack_init().
|
static |
Definition at line 6996 of file rack.c.
References tcpcb::t_fb_ptr, and tcp_rack::t_timers_stopped.
|
static |
Definition at line 9724 of file rack.c.
References CC_NDUPACK, DUP_ACK_THRESHOLD, IN_FASTRECOVERY, tcp_rack::r_ctl, rack_sendmap::r_dupack, tcp_rack::r_timer_override, tcp_rack::r_wanted_output, rack_cong_signal(), rack_log_retran_reason(), rack_control::rc_resend, rack_control::rc_tmap, tcp_rack::rc_tp, tcpcb::snd_una, tcpcb::t_flags, tcp_get_usecs(), and tcp_rack_output().
Referenced by rack_do_compressed_ack_processing(), and rack_process_ack().
Definition at line 6236 of file rack.c.
References KMOD_TCPSTAT_INC, tcp_rack::r_ctl, rack_log_to_event(), RACK_TO_FRM_DELACK, rack_control::rc_hpts_flags, tcpcb::t_flags, tcpcb::t_timers, TF_ACKNOW, tcp_timer::tt_flags, and TT_STOPPED.
Referenced by rack_process_timers().
|
static |
Definition at line 6350 of file rack.c.
References tcp_rack::forced_ack, rack_control::forced_ack_ts, inpcb::inp_socket, KMOD_TCPSTAT_INC, tcp_rack::probe_not_answered, tcp_rack::r_ctl, rack_log_to_event(), rack_start_hpts_timer(), RACK_TO_FRM_KEEP, rack_control::rc_hpts_flags, tcpcb::rcv_nxt, tcpcb::snd_una, tcpcb::t_inpcb, tcpcb::t_rcvtime, tcpcb::t_state, tcpcb::t_timers, TCP_EI_STATUS_KEEP_MAX, tcp_get_usecs(), tcp_log_end_status(), tcp_respond(), tcpip_maketemplate(), TCPS_CLOSING, TCPS_ESTABLISHED, TP_KEEPIDLE, TP_MAXIDLE, tcp_timer::tt_flags, tcptemp::tt_ipgen, TT_STOPPED, tcptemp::tt_t, and V_tcp_always_keepalive.
Referenced by rack_process_timers().
Definition at line 6258 of file rack.c.
References ctf_progress_timeout_check(), tcp_rack::forced_ack, rack_control::forced_ack_ts, inpcb::inp_socket, KMOD_TCPSTAT_INC, rack_control::persist_lost_ends, tcp_rack::probe_not_answered, PROGRESS_DROP, tcp_rack::r_ctl, rack_exit_persist(), rack_log_progress_event(), rack_log_to_event(), rack_persists_loss, rack_persists_lost_ends, rack_persists_sends, RACK_REXMTVAL, rack_start_hpts_timer(), RACK_TO_FRM_PERSIST, rack_control::rc_hpts_flags, tcp_rack::rc_in_persist, tcp_rack::rc_inp, tcpcb::rcv_nxt, tcpcb::snd_max, tcpcb::snd_una, tcpcb::t_flags, tcpcb::t_inpcb, tcpcb::t_rcvtime, tcpcb::t_rxtshift, tcpcb::t_state, tcpcb::t_timers, TCP_EI_STATUS_PERSIST_MAX, tcp_get_usecs(), tcp_log_end_status(), tcp_maxpersistidle, TCP_MAXRXTSHIFT, tcp_respond(), tcp_totbackoff, tcpip_maketemplate(), TCPS_CLOSE_WAIT, TCPTV_PERSMAX, TF_DELACK, tcp_timer::tt_flags, tcptemp::tt_ipgen, TT_STOPPED, and tcptemp::tt_t.
Referenced by rack_process_timers().
Definition at line 5824 of file rack.c.
References tcp_rack::r_ctl, tcp_rack::r_state, tcp_rack::r_timer_override, rack_check_recovery_mode(), rack_log_to_event(), rack_set_state(), rack_start_hpts_timer(), RACK_TO_FRM_RACK, rack_to_tot, rack_control::rc_hpts_flags, tcp_rack::rc_on_min_to, rack_control::rc_resend, tcpcb::t_state, tcpcb::t_timers, tcp_timer::tt_flags, TT_STOPPED, and tcp_rack::use_rack_rr.
Referenced by rack_process_timers().
Definition at line 6578 of file rack.c.
References CC_RTO, ctf_progress_timeout_check(), rack_control::dsack_byte_cnt, rack_control::dsack_persist, tcpcb::gput_ack, tcpcb::gput_seq, IN_CONGRECOVERY, IN_FASTRECOVERY, in_losing(), INP_IPV6, inpcb::inp_vflag, KMOD_TCPSTAT_INC, rack_control::num_dsack, PROGRESS_DROP, tcp_rack::r_ctl, rack_sendmap::r_flags, rack_sendmap::r_tim_lastsent, rack_cong_signal(), RACK_INITIAL_RTO, rack_log_dsack_event(), rack_log_pacing_delay_calc(), rack_log_progress_event(), rack_remxt_tmr(), rack_rto_max, rack_rto_min, RACK_RWND_COLLAPSED, rack_control::rack_sf, RACK_TCPT_RANGESET, rack_control::rc_gp_srtt, rack_control::rc_hpts_flags, rack_control::rc_mtree, rack_control::rc_resend, rack_control::retran_during_recovery, sack_filter_clear(), tcpcb::snd_cwnd, tcpcb::snd_cwnd_prev, tcpcb::snd_max, tcpcb::snd_recover, tcpcb::snd_recover_prev, tcpcb::snd_ssthresh, tcpcb::snd_ssthresh_prev, tcpcb::snd_una, tcpcb::t_badrxtwin, tcpcb::t_flags, tcpcb::t_flags2, tcpcb::t_inpcb, tcpcb::t_maxseg, tcpcb::t_pmtud_saved_maxseg, tcpcb::t_rtttime, tcpcb::t_rttvar, tcpcb::t_rxtcur, tcpcb::t_rxtshift, tcpcb::t_softerror, tcpcb::t_srtt, tcpcb::t_state, tcpcb::t_timers, tcp_backoff, TCP_EI_STATUS_KEEP_MAX, TCP_EI_STATUS_RETRAN, tcp_log_end_status(), TCP_MAXRXTSHIFT, tcp_rexmit_drop_options, TCPS_ESTABLISHED, TCPS_FIN_WAIT_1, TCPS_HAVEESTABLISHED, TCPS_SYN_RECEIVED, TCPS_SYN_SENT, TF2_PLPMTU_BLACKHOLE, TF2_PLPMTU_MAXSEGSNT, TF2_PLPMTU_PMTUD, TF_ACKNOW, TF_GPUTINPROG, TF_PREVVALID, TF_RCVD_TSTMP, TF_REQ_SCALE, TF_REQ_TSTMP, TF_SACK_PERMIT, TF_WASCRECOVERY, TF_WASFRECOVERY, rack_control::timer_slop, TP_KEEPINIT, TSTMP_GT, tcp_timer::tt_flags, TT_STOPPED, V_tcp_mssdflt, V_tcp_pmtud_blackhole_detect, V_tcp_pmtud_blackhole_mss, and V_tcp_v6pmtud_blackhole_mss.
Referenced by rack_process_timers().
|
static |
Definition at line 6034 of file rack.c.
References ctf_fixed_maxseg(), ctf_progress_timeout_check(), rack_control::dsack_byte_cnt, rack_control::dsack_persist, tcpcb::gput_ack, tcpcb::gput_seq, IN_FASTRECOVERY, inpcb::inp_socket, MAP_SPLIT, rack_control::num_dsack, PROGRESS_DROP, tcp_rack::r_ctl, rack_sendmap::r_end, rack_sendmap::r_flags, rack_sendmap::r_in_tmap, rack_sendmap::r_start, tcp_rack::r_state, tcp_rack::r_timer_override, RACK_ACKED, rack_alloc_full_limit(), rack_always_send_oldest, rack_clone_rsm(), rack_find_high_nonack(), RACK_HAS_FIN, rack_log_dsack_event(), rack_log_map_chg(), rack_log_pacing_delay_calc(), rack_log_progress_event(), rack_log_to_event(), rack_log_to_prr(), tcp_rack::rack_no_prr, RACK_RWND_COLLAPSED, rack_set_state(), rack_tlp_newdata, rack_tlp_tot, RACK_TO_FRM_TLP, rack_control::rc_gp_srtt, rack_control::rc_hpts_flags, rack_control::rc_mtree, rack_control::rc_prr_sndcnt, rack_control::rc_timer_exp, rack_control::rc_tlp_cnt_out, rack_control::rc_tlp_new_data, rack_control::rc_tlpsend, rack_control::rc_tmap, rack_control::retran_during_recovery, tcpcb::snd_max, tcpcb::snd_una, tcpcb::snd_wnd, tcpcb::t_flags, tcpcb::t_inpcb, tcpcb::t_state, tcpcb::t_timers, tcp_log_dump_tp_logbuf(), TF_GPUTINPROG, TSTMP_LT, tcp_timer::tt_flags, and TT_STOPPED.
Referenced by rack_process_timers().
|
static |
Definition at line 12881 of file rack.c.
References inpcb::inp_socket, PACE_PKT_OUTPUT, PACE_TMR_DELACK, PACE_TMR_KEEP, PACE_TMR_MASK, PACE_TMR_PERSIT, PACE_TMR_RACK, PACE_TMR_RXT, PACE_TMR_TLP, tcp_rack::r_ctl, tcp_rack::r_early, rack_start_hpts_timer(), rack_timer_cancel(), rack_control::rc_agg_early, rack_control::rc_hpts_flags, tcp_rack::rc_in_persist, tcp_rack::rc_inp, rack_control::rc_last_output_to, rack_control::rc_rcvtime, rack_control::rc_tmap, SEQ_GT, tcpcb::snd_max, tcpcb::snd_una, tcpcb::t_flags, tcpcb::t_inpcb, tcpcb::t_state, tcp_get_usecs(), tcp_hpts_remove(), tcp_in_hpts(), TCPS_CLOSING, TCPS_ESTABLISHED, TF_DELACK, TSTMP_GT, and V_tcp_always_keepalive.
Referenced by rack_do_compressed_ack_processing(), and rack_do_segment_nounlock().
|
static |
Definition at line 6953 of file rack.c.
References PACE_PKT_OUTPUT, PACE_TMR_MASK, tcp_rack::r_ctl, rack_log_to_cancel(), rack_control::rc_hpts_flags, tcp_rack::rc_inp, rack_control::rc_last_output_to, tcp_rack::rc_tmr_stopped, tcpcb::snd_max, tcpcb::snd_una, tcp_get_usecs(), tcp_hpts_remove(), tcp_in_hpts(), and TSTMP_GEQ.
Referenced by rack_do_compressed_ack_processing(), rack_do_syn_sent(), rack_enter_persist(), rack_fastack(), rack_handle_delayed_ack(), rack_log_ack(), rack_output(), rack_process_ack(), rack_process_data(), rack_remxt_tmr(), and rack_timer_audit().
|
static |
Definition at line 5143 of file rack.c.
References ctf_fixed_maxseg(), DUP_ACK_THRESHOLD, IN_FASTRECOVERY, inpcb::inp_socket, PACE_TMR_RACK, PACE_TMR_RXT, PACE_TMR_TLP, r_ctl, tcp_rack::r_ctl, rack_sendmap::r_dupack, rack_sendmap::r_flags, tcp_rack::r_rr_config, rack_sendmap::r_rtr_cnt, rack_sendmap::r_tim_lastsent, RACK_ACKED, rack_calc_thresh_rack(), rack_calc_thresh_tlp(), rack_find_lowest_rsm(), rack_get_persists_timer_val(), rack_grab_rtt(), RACK_HAS_FIN, RACK_INITIAL_RTO, rack_log_alt_to_to_cancel(), tcp_rack::rack_no_prr, RACK_SACK_PASSED, rack_tlp_limit, rack_tlp_min, rack_tlp_use_greater, rack_control::rc_hpts_flags, tcp_rack::rc_in_persist, bbr_control::rc_min_to, rack_control::rc_min_to, tcp_rack::rc_on_min_to, rack_control::rc_prr_sndcnt, tcp_rack::rc_srtt_measure_made, rack_control::rc_tlp_cnt_out, tcp_rack::rc_tlp_in_progress, rack_control::rc_tlp_rxt_last_time, rack_control::rc_tmap, tcp_rack::sack_attack_disable, SEQ_GEQ, SEQ_LT, tcpcb::snd_max, tcpcb::snd_una, tcpcb::t_flags, tcpcb::t_inpcb, tcpcb::t_rxtcur, tcpcb::t_srtt, tcpcb::t_state, tcp_rack::t_timers_stopped, TCPS_ESTABLISHED, TCPS_HAVEESTABLISHED, TCPTV_REXMTMAX, TF_SACK_PERMIT, TF_SENTFIN, TP_KEEPINIT, TSTMP_GEQ, TSTMP_GT, and tcp_rack::use_rack_rr.
Referenced by rack_start_hpts_timer().
|
static |
Definition at line 10310 of file rack.c.
References tcp_rack::r_ctl, rack_sendmap::r_flags, RACK_RWND_COLLAPSED, tcp_rack::rc_has_collapsed, and rack_control::rc_mtree.
Referenced by rack_do_win_updates(), rack_fastack(), and rack_process_data().
|
static |
Definition at line 638 of file rack.c.
References BBR_LOG_CWND, newreno::beta, newreno::beta_ecn, tcpcb::cc_algo, cc_var::cc_data, CCALGONAME_NEWRENO, tcpcb::ccv, tcp_log_bbr::flex1, tcp_log_bbr::flex2, tcp_log_bbr::flex3, tcp_log_bbr::flex4, tcp_log_bbr::flex5, tcp_log_bbr::flex6, tcp_log_bbr::flex7, tcp_log_bbr::flex8, tcp_rack::gp_ready, cc_algo::name, newreno::newreno_flags, tcp_log_bbr::pkts_out, tcp_rack::r_ctl, rack_verbose_logging, tcp_rack::rc_pacing_cc_set, rack_control::rc_prr_sndcnt, rack_control::rc_saved_beta, tcp_rack::rc_tp, tcpcb::t_logstate, tcp_get_usecs(), tcp_log_event_(), TCP_LOG_STATE_OFF, tcp_log_bbr::timeStamp, tcp_log_stackspecific::u_bbr, and tcp_rack::use_fixed_rate.
Referenced by rack_fini(), rack_process_option(), and rack_set_profile().
|
static |
Definition at line 7079 of file rack.c.
References MAP_SPLIT, tcp_rack::r_ctl, rack_sendmap::r_dupack, rack_sendmap::r_end, rack_sendmap::r_flags, rack_sendmap::r_in_tmap, rack_sendmap::r_start, rack_alloc_full_limit(), rack_clone_rsm(), rack_log_map_chg(), rack_log_retran_reason(), rack_update_rsm(), rack_control::rc_mtree, rack_control::rc_tmap, and SEQ_GEQ.
Referenced by rack_log_output().
|
static |
Definition at line 3807 of file rack.c.
References tcp_rack::in_probe_rtt, rack_control::last_gp_comp_bw, tcp_rack::r_ctl, rack_decrease_bw_mul(), rack_down_raise_thresh, rack_get_bw(), rack_gp_per_bw_mul_down, rack_gp_per_bw_mul_up, rack_increase_bw_mul(), rack_log_timely(), rack_control::rack_per_of_gp_ca, rack_control::rack_per_of_gp_ss, rack_per_upper_bound_ca, rack_per_upper_bound_ss, rack_timely_max_push_drop, rack_timely_max_push_rise, rack_validate_multipliers_at_or_below_100(), tcp_rack::rc_always_pace, tcp_rack::rc_gp_bwred, tcp_rack::rc_gp_dyn_mul, tcp_rack::rc_gp_incr, tcp_rack::rc_gp_saw_ca, tcp_rack::rc_gp_saw_ss, tcp_rack::rc_gp_timely_dec_cnt, tcp_rack::rc_gp_timely_inc_cnt, rack_control::rc_loss_at_start, rack_control::rc_loss_count, rack_control::rc_no_push_at_mrtt, and tcp_rack::use_fixed_rate.
Referenced by rack_do_goodput_measurement().
|
static |
Definition at line 9299 of file rack.c.
References inpcb::inp_socket, tcp_rack::r_ctl, rack_log_to_prr(), rack_control::rc_holes_rxt, tcp_rack::rc_inp, rack_control::rc_prr_delivered, rack_control::rc_prr_out, rack_control::rc_prr_recovery_fs, rack_control::rc_prr_sndcnt, rack_control::rc_sacked, SEQ_GT, tcpcb::snd_max, tcpcb::snd_ssthresh, and tcpcb::snd_una.
Referenced by rack_do_compressed_ack_processing(), and rack_log_ack().
|
static |
Definition at line 7036 of file rack.c.
References ctf_flight_size(), tcp_rack::r_ctl, rack_sendmap::r_dupack, rack_sendmap::r_end, rack_sendmap::r_fas, rack_sendmap::r_flags, rack_sendmap::r_in_tmap, rack_sendmap::r_rtr_bytes, rack_sendmap::r_rtr_cnt, rack_sendmap::r_start, rack_sendmap::r_tim_lastsent, RACK_ACKED, rack_log_retran_reason(), RACK_NUM_OF_RETRANS, RACK_OVERMAX, RACK_SACK_PASSED, RACK_TLP, RACK_WAS_SACKPASS, rack_control::rc_holes_rxt, rack_control::rc_sacked, rack_control::rc_tmap, and tcp_rack::rc_tp.
Referenced by rack_log_output(), and rack_update_entry().
|
static |
Definition at line 7728 of file rack.c.
References rack_control::act_rcv_time, tcp_rack::app_limited_needs_set, CC_ALGO, CC_NDUPACK, tcpcb::ccv, ctf_fixed_maxseg(), CUM_ACKED, IN_FASTRECOVERY, tcp_rack::r_ctl, rack_sendmap::r_end, rack_sendmap::r_fas, rack_sendmap::r_flags, rack_sendmap::r_no_rtt_allowed, rack_sendmap::r_rtr_cnt, rack_sendmap::r_start, rack_sendmap::r_tim_lastsent, RACK_ACKED, RACK_APP_LIMITED, rack_apply_updated_usrtt(), rack_cong_signal(), rack_log_rtt_sample_calc(), RACK_OVERMAX, RACK_REXMTVAL, rack_rto_max, rack_rto_min, RACK_TCPT_RANGESET, RACK_TLP, rack_ts_to_msec(), RACK_WAS_ACKED, rack_control::rc_rack_min_rtt, tcp_rack::rc_rack_rtt, rack_control::rc_rack_tmit_time, rack_control::rc_tlp_cwnd_reduce, SACKED, SEQ_GT, SEQ_LT, tcpcb::snd_una, tcpcb::t_flags, tcpcb::t_rttlow, tcpcb::t_rxtcur, tcpcb::t_rxtshift, tcpcb::t_softerror, tcp_get_usecs(), tcp_rack_xmit_timer(), tcp_tv_to_usectick(), rack_control::timer_slop, tcpopt::to_flags, tcpopt::to_tsecr, TOF_TS, and TSTMP_GT.
Referenced by rack_proc_sack_blk(), and rack_process_to_cumack().
|
static |
Definition at line 19134 of file rack.c.
References tcp_rack::r_ctl, rack_log_pacing_delay_calc(), rack_set_pace_segments(), rack_control::rc_pace_max_segs, and tcp_rack::rc_tp.
Referenced by rack_process_option().
Definition at line 10350 of file rack.c.
References ctf_fixed_maxseg(), ctf_outstanding(), rack_control::fsb, rack_fast_send_blk::left_to_send, tcp_rack::r_ctl, tcp_rack::r_fast_output, and tcpcb::snd_wnd.
Referenced by rack_do_segment_nounlock(), rack_do_syn_recv(), rack_do_win_updates(), rack_fastack(), and rack_process_data().
|
static |
Definition at line 3126 of file rack.c.
References tcp_rack::r_ctl, rack_control::rack_per_of_gp_ca, rack_control::rack_per_of_gp_rec, and rack_control::rack_per_of_gp_ss.
Referenced by rack_check_bottom_drag().
|
static |
Definition at line 3146 of file rack.c.
References tcp_rack::r_ctl, rack_control::rack_per_of_gp_ca, and rack_control::rack_per_of_gp_ss.
Referenced by rack_update_multiplier().
|
inlinestatic |
Definition at line 15264 of file rack.c.
References ctf_flight_size(), ctf_outstanding(), tcp_rack::r_ctl, rack_control::rc_sacked, and tcpcb::snd_wnd.
Referenced by rack_output().
RB_GENERATE | ( | rack_rb_tree_head | , |
rack_sendmap | , | ||
r_next | , | ||
rb_map_cmp | |||
) |
|
static |
Definition at line 1741 of file rack.c.
References rack_sendmap::r_end, rack_sendmap::r_start, SEQ_GEQ, and SEQ_LT.
RB_PROTOTYPE | ( | rack_rb_tree_head | , |
rack_sendmap | , | ||
r_next | , | ||
rb_map_cmp | |||
) |
Definition at line 1784 of file rack.c.
References ctf_fixed_maxseg(), tcp_rack::rc_init_win, tcp_rack::rc_tp, tcp_compute_initwnd(), and tcp_maxseg().
Referenced by rack_cc_after_idle(), rack_cc_conn_init(), rack_do_goodput_measurement(), rack_enough_for_measurement(), rack_init(), rack_need_set_test(), rack_process_option(), rack_set_pace_segments(), and rack_start_gp_measurement().
|
static |
Definition at line 708 of file rack.c.
References rack_ack_total, rack_alloc_limited_conns, rack_clear_counter, rack_collapsed_win, rack_express_sack, rack_extended_rfo, rack_fto_rsm_send, rack_fto_send, rack_hw_pace_init_fail, rack_hw_pace_lost, rack_move_none, rack_move_some, rack_multi_single_eq, rack_nfto_resend, rack_non_fto_send, rack_persists_acks, rack_persists_loss, rack_persists_lost_ends, rack_persists_sends, rack_proc_non_comp_ack, rack_sack_attacks_detected, rack_sack_attacks_reversed, rack_sack_proc_all, rack_sack_proc_restart, rack_sack_proc_short, rack_sack_skipped_acked, rack_sack_splits, rack_sack_total, rack_sack_used_next_merge, rack_sack_used_prev_merge, rack_saw_enetunreach, rack_saw_enobuf, rack_saw_enobuf_hw, rack_split_limited, rack_tlp_newdata, rack_tlp_retran, rack_tlp_retran_bytes, rack_tlp_tot, rack_to_alloc, rack_to_alloc_emerg, rack_to_alloc_hard, rack_to_alloc_limited, rack_to_tot, and rack_try_scwnd.
Referenced by rack_init_sysctls().
|
static |
Definition at line 20621 of file rack.c.
References __tcp_rack, deregister_tcp_functions(), rack_counter_destroy(), rack_ctor(), rack_dtor(), rack_init_sysctls(), rack_mod_inited, rack_pcb_zone, rack_stack_names, rack_sysctl_ctx, rack_sysctl_root, rack_zone, register_tcp_functions_as_names(), tcp_lro_dereg_mbufq(), and tcp_lro_reg_mbufq().
struct rack_sendmap * tcp_rack_output | ( | struct tcpcb * | tp, |
struct tcp_rack * | rack, | ||
uint32_t | tsused | ||
) |
Definition at line 14482 of file rack.c.
References DUP_ACK_THRESHOLD, tcp_rack::r_ctl, rack_sendmap::r_dupack, tcp_rack::r_fast_output, rack_sendmap::r_flags, rack_sendmap::r_rtr_cnt, rack_sendmap::r_tim_lastsent, RACK_ACKED, rack_calc_thresh_rack(), rack_find_lowest_rsm(), rack_grab_rtt(), rack_log_retran_reason(), RACK_SACK_PASSED, rack_control::rc_mtree, rack_control::rc_tmap, tcp_rack::rc_tp, tcp_rack::sack_attack_disable, tcpcb::t_flags, TF_SACK_PERMIT, TF_SENTFIN, and TSTMP_LT.
Referenced by rack_log_ack(), rack_output(), and rack_strike_dupack().
|
static |
Definition at line 4626 of file rack.c.
References INP_WLOCK_ASSERT, tcp_rack::r_ctl, tcp_rack::r_wanted_output, tcp_rack::rack_no_prr, rack_control::rc_prr_sndcnt, tcpcb::t_fb_ptr, and tcpcb::t_inpcb.
Referenced by rack_do_compressed_ack_processing(), and rack_process_ack().
|
static |
Definition at line 7456 of file rack.c.
References rack_rtt_sample::confidence, ctf_fixed_maxseg(), r_ctl, tcp_rack::r_ctl, rack_sendmap::r_just_ret, rack_sendmap::r_one_out_nr, rack_log_rtt_upd(), rack_control::rack_rs, RACK_RTT_EMPTY, RACK_RTT_VALID, rack_control::rc_gp_high_rwnd, rack_control::rc_gp_lowrtt, tcp_rack::rc_tp, rack_rtt_sample::rs_flags, rack_rtt_sample::rs_rtt_cnt, rack_rtt_sample::rs_rtt_highest, rack_rtt_sample::rs_rtt_lowest, rack_rtt_sample::rs_rtt_tot, rack_rtt_sample::rs_us_rtrcnt, rack_rtt_sample::rs_us_rtt, tcpcb::snd_wnd, tcpcb::t_flags, and TF_GPUTINPROG.
Referenced by rack_do_syn_recv(), rack_do_syn_sent(), rack_handle_probe_response(), and rack_update_rtt().
Definition at line 7525 of file rack.c.
References rack_rtt_sample::confidence, HPTS_USEC_IN_MSEC, KMOD_TCPSTAT_INC, tcp_rack::r_ctl, rack_hbp_thresh, rack_log_rtt_sample(), rack_log_rtt_shrinks(), RACK_REXMTVAL, rack_control::rack_rs, rack_rto_max, rack_rto_min, RACK_RTT_EMPTY, RACK_RTTS_SEEHBP, rack_stats_gets_ms_rtt, RACK_TCPT_RANGESET, tcp_rack::rc_gp_rtt_set, rack_control::rc_gp_srtt, rack_control::rc_highest_us_rtt, tcp_rack::rc_highly_buffered, rack_control::rc_last_us_rtt, rack_control::rc_lowest_us_rtt, rack_control::rc_rate_sample_method, tcp_rack::rc_srtt_measure_made, rack_rtt_sample::rs_flags, rack_rtt_sample::rs_rtt_cnt, rack_rtt_sample::rs_rtt_highest, rack_rtt_sample::rs_rtt_lowest, rack_rtt_sample::rs_rtt_tot, rack_rtt_sample::rs_us_rtrcnt, rack_rtt_sample::rs_us_rtt, tcpcb::t_fb_ptr, tcpcb::t_rttbest, tcpcb::t_rttupdated, tcpcb::t_rttvar, tcpcb::t_rxtcur, tcpcb::t_rxtshift, tcpcb::t_softerror, tcpcb::t_srtt, tcpcb::t_stats, rack_control::timer_slop, USE_RTT_AVG, USE_RTT_HIGH, USE_RTT_LOW, and VOI_TCP_RTT.
Referenced by rack_do_compressed_ack_processing(), rack_do_segment_nounlock(), rack_do_syn_recv(), and rack_do_syn_sent().
VNET_DECLARE | ( | uint32_t | , |
newreno_beta | |||
) |
VNET_DECLARE | ( | uint32_t | , |
newreno_beta_ecn | |||
) |
|
static |
Definition at line 20062 of file rack.c.
Referenced by rack_set_sockopt(), and tcp_addrack().
counter_u64_t rack_ack_total |
Definition at line 375 of file rack.c.
Referenced by rack_counter_destroy(), rack_do_compressed_ack_processing(), rack_init_sysctls(), rack_log_ack(), and sysctl_rack_clear().
counter_u64_t rack_alloc_limited_conns |
Definition at line 354 of file rack.c.
Referenced by rack_alloc_full_limit(), rack_alloc_limit(), rack_counter_destroy(), rack_init_sysctls(), rack_output(), and sysctl_rack_clear().
|
static |
Definition at line 269 of file rack.c.
Referenced by rack_init_sysctls(), and rack_timeout_tlp().
|
static |
Definition at line 210 of file rack.c.
Referenced by rack_handle_probe_response(), and rack_init_sysctls().
|
static |
Definition at line 281 of file rack.c.
Referenced by rack_exit_probertt(), and rack_init_sysctls().
|
static |
Definition at line 280 of file rack.c.
Referenced by rack_exit_probertt(), and rack_init_sysctls().
|
static |
Definition at line 238 of file rack.c.
Referenced by rack_init_sysctls(), and rack_sndbuf_autoscale().
|
static |
Definition at line 328 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
int32_t rack_clear_counter =0 |
Definition at line 548 of file rack.c.
Referenced by rack_init_sysctls(), and sysctl_rack_clear().
|
static |
Definition at line 223 of file rack.c.
Referenced by rack_ack_received(), and rack_init_sysctls().
counter_u64_t rack_collapsed_win |
Definition at line 382 of file rack.c.
Referenced by rack_collapsed_window(), rack_counter_destroy(), rack_init_sysctls(), and sysctl_rack_clear().
|
static |
Definition at line 263 of file rack.c.
Referenced by rack_init_sysctls(), and rack_output().
|
static |
Definition at line 249 of file rack.c.
Referenced by rack_get_measure_window(), and rack_init_sysctls().
|
static |
Definition at line 265 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 236 of file rack.c.
Referenced by rack_init(), rack_init_sysctls(), and rack_process_option().
|
static |
Definition at line 260 of file rack.c.
Referenced by rack_calc_thresh_tlp(), and rack_init_sysctls().
|
static |
Definition at line 230 of file rack.c.
Referenced by rack_init(), rack_init_sysctls(), and rack_set_profile().
|
static |
Definition at line 317 of file rack.c.
Referenced by rack_init(), rack_init_sysctls(), and rack_set_profile().
|
static |
Definition at line 209 of file rack.c.
Referenced by rack_init(), rack_init_sysctls(), and rack_process_option().
|
static |
Definition at line 326 of file rack.c.
Referenced by rack_init_sysctls(), and rack_update_multiplier().
|
static |
Definition at line 224 of file rack.c.
Referenced by rack_init(), rack_init_sysctls(), and rack_set_profile().
|
static |
Definition at line 201 of file rack.c.
Referenced by rack_init(), rack_init_sysctls(), and rack_set_profile().
|
static |
Definition at line 229 of file rack.c.
Referenced by rack_init(), rack_init_sysctls(), and rack_set_profile().
|
static |
Definition at line 217 of file rack.c.
Referenced by rack_init(), rack_init_sysctls(), and rack_set_profile().
|
static |
Definition at line 239 of file rack.c.
Referenced by rack_get_pacing_delay(), and rack_init_sysctls().
|
static |
Definition at line 240 of file rack.c.
Referenced by rack_get_pacing_delay(), and rack_init_sysctls().
|
static |
Definition at line 241 of file rack.c.
Referenced by rack_get_pacing_delay(), and rack_init_sysctls().
counter_u64_t rack_express_sack |
Definition at line 376 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_log_ack(), and sysctl_rack_clear().
counter_u64_t rack_extended_rfo |
Definition at line 364 of file rack.c.
Referenced by rack_counter_destroy(), rack_gain_for_fastoutput(), rack_init_sysctls(), and sysctl_rack_clear().
|
static |
Definition at line 256 of file rack.c.
Referenced by rack_alloc(), rack_free_trim(), and rack_output().
counter_u64_t rack_fto_rsm_send |
Definition at line 361 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), and sysctl_rack_clear().
counter_u64_t rack_fto_send |
Definition at line 360 of file rack.c.
Referenced by rack_counter_destroy(), rack_fast_output(), rack_init_sysctls(), and sysctl_rack_clear().
|
static |
Definition at line 250 of file rack.c.
Referenced by rack_get_measure_window(), and rack_init_sysctls().
|
static |
Definition at line 312 of file rack.c.
Referenced by rack_decrease_highrtt(), rack_get_decrease(), and rack_init_sysctls().
|
static |
Definition at line 313 of file rack.c.
Referenced by rack_increase_bw_mul(), and rack_init_sysctls().
|
static |
Definition at line 318 of file rack.c.
Referenced by rack_init(), rack_init_sysctls(), and rack_set_profile().
|
static |
Definition at line 308 of file rack.c.
Referenced by rack_init_sysctls(), and rack_update_multiplier().
|
static |
Definition at line 307 of file rack.c.
Referenced by rack_init_sysctls(), and rack_update_multiplier().
|
static |
Definition at line 309 of file rack.c.
Referenced by rack_decrease_bw_mul(), rack_decrease_highrtt(), rack_init_sysctls(), rack_make_timely_judgement(), and rack_process_option().
|
static |
Definition at line 311 of file rack.c.
Referenced by rack_init_sysctls(), and rack_make_timely_judgement().
|
static |
Definition at line 310 of file rack.c.
Referenced by rack_init_sysctls(), and rack_make_timely_judgement().
|
static |
Definition at line 299 of file rack.c.
Referenced by rack_init_sysctls(), and tcp_rack_xmit_timer_commit().
|
static |
Definition at line 200 of file rack.c.
Referenced by rack_init_sysctls().
|
static |
Definition at line 199 of file rack.c.
Referenced by rack_init_sysctls().
counter_u64_t rack_hot_alloc |
Definition at line 349 of file rack.c.
Referenced by rack_alloc(), rack_counter_destroy(), and rack_init_sysctls().
|
static |
Definition at line 257 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 202 of file rack.c.
Referenced by rack_get_pacing_delay(), and rack_init_sysctls().
counter_u64_t rack_hw_pace_init_fail |
Definition at line 384 of file rack.c.
Referenced by rack_counter_destroy(), rack_get_pacing_delay(), rack_init_sysctls(), and sysctl_rack_clear().
counter_u64_t rack_hw_pace_lost |
Definition at line 385 of file rack.c.
Referenced by rack_counter_destroy(), rack_get_pacing_delay(), rack_init_sysctls(), and sysctl_rack_clear().
|
static |
Definition at line 203 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 204 of file rack.c.
Referenced by rack_get_pacing_delay(), and rack_init_sysctls().
|
static |
Definition at line 205 of file rack.c.
Referenced by rack_get_pacing_delay(), and rack_init_sysctls().
|
static |
Definition at line 242 of file rack.c.
Referenced by rack_init_sysctls(), and rack_output().
|
static |
Definition at line 206 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 216 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
counter_u64_t rack_input_idle_reduces |
Definition at line 381 of file rack.c.
Referenced by rack_counter_destroy(), rack_do_compressed_ack_processing(), rack_do_segment_nounlock(), and rack_init_sysctls().
|
static |
Definition at line 237 of file rack.c.
Referenced by rack_get_pacing_delay(), and rack_init_sysctls().
|
static |
Definition at line 268 of file rack.c.
Referenced by rack_init_sysctls().
|
static |
Definition at line 228 of file rack.c.
Referenced by rack_init(), rack_init_sysctls(), and rack_set_profile().
|
static |
Definition at line 267 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 222 of file rack.c.
Referenced by rack_ack_received(), and rack_init_sysctls().
|
static |
Definition at line 298 of file rack.c.
Referenced by rack_check_probe_rtt(), and rack_init_sysctls().
|
static |
Definition at line 283 of file rack.c.
Referenced by rack_check_probe_rtt(), and rack_init_sysctls().
|
static |
Definition at line 302 of file rack.c.
Referenced by rack_bw_can_be_raised(), and rack_init_sysctls().
|
static |
Definition at line 252 of file rack.c.
Referenced by rack_get_measure_window(), and rack_init_sysctls().
|
static |
Definition at line 292 of file rack.c.
Referenced by rack_check_probe_rtt(), rack_exit_persist(), rack_init_sysctls(), rack_output(), and rack_start_hpts_timer().
|
static |
Definition at line 295 of file rack.c.
Referenced by rack_apply_updated_usrtt(), and rack_init_sysctls().
|
static |
Definition at line 251 of file rack.c.
Referenced by rack_enough_for_measurement(), and rack_init_sysctls().
|
static |
Definition at line 214 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 20618 of file rack.c.
Referenced by tcp_addrack().
counter_u64_t rack_move_none |
Definition at line 378 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_log_ack(), and sysctl_rack_clear().
counter_u64_t rack_move_some |
Definition at line 379 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_log_ack(), and sysctl_rack_clear().
counter_u64_t rack_multi_single_eq |
Definition at line 357 of file rack.c.
Referenced by rack_counter_destroy(), rack_do_compressed_ack_processing(), rack_init_sysctls(), and sysctl_rack_clear().
|
static |
Definition at line 284 of file rack.c.
Referenced by rack_check_probe_rtt(), and rack_init_sysctls().
counter_u64_t rack_nfto_resend |
Definition at line 362 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_output(), and sysctl_rack_clear().
counter_u64_t rack_non_fto_send |
Definition at line 363 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_output(), and sysctl_rack_clear().
|
static |
Definition at line 232 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
counter_u64_t rack_opts_arry[RACK_OPTS_SIZE] |
Definition at line 388 of file rack.c.
Referenced by rack_counter_destroy(), and rack_init_sysctls().
counter_u64_t rack_out_size[TCP_MSS_ACCT_SIZE] |
Definition at line 387 of file rack.c.
Referenced by rack_counter_destroy(), rack_fast_output(), rack_fast_rsm_output(), rack_init_sysctls(), and rack_output().
|
static |
Definition at line 259 of file rack.c.
Referenced by rack_init(), rack_init_sysctls(), and rack_set_profile().
|
static |
Definition at line 296 of file rack.c.
Referenced by rack_get_pacing_len(), and rack_init_sysctls().
uma_zone_t rack_pcb_zone |
Definition at line 138 of file rack.c.
Referenced by rack_fini(), rack_init(), and tcp_addrack().
|
static |
Definition at line 314 of file rack.c.
Referenced by rack_decrease_bw_mul(), and rack_init_sysctls().
|
static |
Definition at line 273 of file rack.c.
Referenced by rack_init(), rack_init_sysctls(), and rack_set_profile().
|
static |
Definition at line 278 of file rack.c.
Referenced by rack_check_probe_rtt(), and rack_init_sysctls().
|
static |
Definition at line 277 of file rack.c.
Referenced by rack_check_probe_rtt(), rack_enter_probertt(), rack_init(), and rack_init_sysctls().
|
static |
Definition at line 279 of file rack.c.
Referenced by rack_check_probe_rtt(), and rack_init_sysctls().
|
static |
Definition at line 274 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 272 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 316 of file rack.c.
Referenced by rack_increase_bw_mul(), rack_init_sysctls(), and rack_update_multiplier().
|
static |
Definition at line 315 of file rack.c.
Referenced by rack_increase_bw_mul(), rack_init_sysctls(), and rack_update_multiplier().
|
static |
Definition at line 234 of file rack.c.
Referenced by rack_get_persists_timer_val(), and rack_init_sysctls().
|
static |
Definition at line 233 of file rack.c.
Referenced by rack_get_persists_timer_val(), and rack_init_sysctls().
counter_u64_t rack_persists_acks |
Definition at line 337 of file rack.c.
Referenced by rack_counter_destroy(), rack_handle_probe_response(), rack_init_sysctls(), and sysctl_rack_clear().
counter_u64_t rack_persists_loss |
Definition at line 338 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_timeout_persist(), and sysctl_rack_clear().
counter_u64_t rack_persists_lost_ends |
Definition at line 339 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_timeout_persist(), and sysctl_rack_clear().
counter_u64_t rack_persists_sends |
Definition at line 336 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_timeout_persist(), and sysctl_rack_clear().
|
static |
Definition at line 212 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 288 of file rack.c.
Referenced by rack_check_probe_rtt(), and rack_init_sysctls().
|
static |
Definition at line 287 of file rack.c.
Referenced by rack_exit_probertt(), and rack_init_sysctls().
|
static |
Definition at line 297 of file rack.c.
Referenced by rack_exit_probertt(), and rack_init_sysctls().
|
static |
Definition at line 293 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 291 of file rack.c.
Referenced by rack_check_probe_rtt(), rack_exit_persist(), and rack_init_sysctls().
|
static |
Definition at line 290 of file rack.c.
Referenced by rack_check_probe_rtt(), rack_exit_persist(), and rack_init_sysctls().
|
static |
Definition at line 294 of file rack.c.
Referenced by rack_apply_updated_usrtt(), and rack_init_sysctls().
|
static |
Definition at line 285 of file rack.c.
Referenced by rack_enter_probertt(), and rack_init_sysctls().
|
static |
Definition at line 286 of file rack.c.
Referenced by rack_exit_probertt(), and rack_init_sysctls().
counter_u64_t rack_proc_non_comp_ack |
Definition at line 358 of file rack.c.
Referenced by rack_counter_destroy(), rack_do_segment_nounlock(), rack_init_sysctls(), and sysctl_rack_clear().
|
static |
Definition at line 208 of file rack.c.
Referenced by rack_init_sysctls(), and rack_post_recovery().
|
static |
Definition at line 258 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 195 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 194 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 197 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 327 of file rack.c.
Referenced by rack_check_bottom_drag(), and rack_init_sysctls().
|
static |
Definition at line 255 of file rack.c.
Referenced by rack_calc_thresh_rack(), rack_calc_thresh_tlp(), rack_convert_rtts(), rack_do_compressed_ack_processing(), rack_enter_persist(), rack_exit_persist(), rack_fastack(), rack_init_sysctls(), rack_log_rtt_sample(), rack_process_ack(), rack_process_option(), rack_timeout_rxt(), rack_update_rtt(), and tcp_rack_xmit_timer_commit().
|
static |
Definition at line 254 of file rack.c.
Referenced by rack_do_compressed_ack_processing(), rack_enter_persist(), rack_exit_persist(), rack_fastack(), rack_init_sysctls(), rack_log_rtt_sample(), rack_log_to_start(), rack_process_ack(), rack_process_option(), rack_timeout_rxt(), rack_update_rtt(), and tcp_rack_xmit_timer_commit().
|
static |
Definition at line 264 of file rack.c.
Referenced by rack_init_sysctls(), and rack_output().
counter_u64_t rack_sack_attacks_detected |
Definition at line 369 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), and sysctl_rack_clear().
counter_u64_t rack_sack_attacks_reversed |
Definition at line 370 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), and sysctl_rack_clear().
|
static |
Definition at line 235 of file rack.c.
Referenced by rack_do_segment_nounlock(), rack_handoff_ok(), and rack_init_sysctls().
counter_u64_t rack_sack_proc_all |
Definition at line 366 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_proc_sack_blk(), and sysctl_rack_clear().
counter_u64_t rack_sack_proc_restart |
Definition at line 368 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), and sysctl_rack_clear().
counter_u64_t rack_sack_proc_short |
Definition at line 367 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_proc_sack_blk(), and sysctl_rack_clear().
counter_u64_t rack_sack_skipped_acked |
Definition at line 374 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_proc_sack_blk(), and sysctl_rack_clear().
counter_u64_t rack_sack_splits |
Definition at line 372 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_proc_sack_blk(), and sysctl_rack_clear().
counter_u64_t rack_sack_total |
Definition at line 377 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_log_ack(), and sysctl_rack_clear().
counter_u64_t rack_sack_used_next_merge |
Definition at line 371 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_proc_sack_blk(), and sysctl_rack_clear().
counter_u64_t rack_sack_used_prev_merge |
Definition at line 373 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_proc_sack_blk(), and sysctl_rack_clear().
counter_u64_t rack_saw_enetunreach |
Definition at line 335 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_output(), and sysctl_rack_clear().
counter_u64_t rack_saw_enobuf |
Definition at line 333 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_output(), and sysctl_rack_clear().
counter_u64_t rack_saw_enobuf_hw |
Definition at line 334 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_output(), and sysctl_rack_clear().
|
static |
Definition at line 213 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 261 of file rack.c.
Referenced by rack_get_pacing_delay(), and rack_init_sysctls().
counter_u64_t rack_split_limited |
Definition at line 355 of file rack.c.
Referenced by rack_alloc_limit(), rack_counter_destroy(), rack_init_sysctls(), and sysctl_rack_clear().
|
static |
Definition at line 20598 of file rack.c.
Referenced by tcp_addrack().
|
static |
Definition at line 207 of file rack.c.
Referenced by rack_init_sysctls(), and tcp_rack_xmit_timer_commit().
struct sysctl_ctx_list rack_sysctl_ctx |
Definition at line 153 of file rack.c.
Referenced by rack_init_sysctls(), and tcp_addrack().
struct sysctl_oid* rack_sysctl_root |
Definition at line 154 of file rack.c.
Referenced by rack_init_sysctls(), and tcp_addrack().
|
static |
Definition at line 289 of file rack.c.
Referenced by rack_apply_updated_usrtt(), rack_check_probe_rtt(), and rack_init_sysctls().
|
static |
Definition at line 319 of file rack.c.
Referenced by rack_decrease_bw_mul(), and rack_init_sysctls().
|
static |
Definition at line 324 of file rack.c.
Referenced by rack_init_sysctls().
|
static |
Definition at line 321 of file rack.c.
Referenced by rack_init_sysctls(), and rack_update_multiplier().
|
static |
Definition at line 320 of file rack.c.
Referenced by rack_init_sysctls(), and rack_update_multiplier().
|
static |
Definition at line 322 of file rack.c.
Referenced by rack_exit_probertt(), rack_init_sysctls(), and rack_set_prtt_target().
|
static |
Definition at line 325 of file rack.c.
Referenced by rack_bw_can_be_raised(), and rack_init_sysctls().
|
static |
Definition at line 192 of file rack.c.
Referenced by rack_init_sysctls(), and rack_timer_start().
|
static |
Definition at line 253 of file rack.c.
Referenced by rack_calc_thresh_tlp(), rack_init_sysctls(), and rack_timer_start().
counter_u64_t rack_tlp_newdata |
Definition at line 345 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_timeout_tlp(), and sysctl_rack_clear().
counter_u64_t rack_tlp_retran |
Definition at line 346 of file rack.c.
Referenced by rack_counter_destroy(), rack_fast_rsm_output(), rack_init_sysctls(), rack_output(), and sysctl_rack_clear().
counter_u64_t rack_tlp_retran_bytes |
Definition at line 347 of file rack.c.
Referenced by rack_counter_destroy(), rack_fast_rsm_output(), rack_init_sysctls(), rack_output(), and sysctl_rack_clear().
|
static |
Definition at line 191 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 270 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
counter_u64_t rack_tlp_tot |
Definition at line 344 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_timeout_tlp(), and sysctl_rack_clear().
|
static |
Definition at line 193 of file rack.c.
Referenced by rack_init_sysctls(), and rack_timer_start().
counter_u64_t rack_to_alloc |
Definition at line 350 of file rack.c.
Referenced by rack_alloc(), rack_counter_destroy(), rack_init_sysctls(), and sysctl_rack_clear().
counter_u64_t rack_to_alloc_emerg |
Definition at line 352 of file rack.c.
Referenced by rack_alloc(), rack_counter_destroy(), rack_init_sysctls(), and sysctl_rack_clear().
counter_u64_t rack_to_alloc_hard |
Definition at line 351 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), and sysctl_rack_clear().
counter_u64_t rack_to_alloc_limited |
Definition at line 353 of file rack.c.
Referenced by rack_alloc_full_limit(), rack_counter_destroy(), rack_init_sysctls(), rack_output(), and sysctl_rack_clear().
counter_u64_t rack_to_tot |
Definition at line 348 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_timeout_rack(), and sysctl_rack_clear().
counter_u64_t rack_try_scwnd |
Definition at line 383 of file rack.c.
Referenced by rack_counter_destroy(), rack_init_sysctls(), rack_output(), and sysctl_rack_clear().
|
static |
Definition at line 218 of file rack.c.
Referenced by rack_init(), rack_init_sysctls(), and rack_set_profile().
|
static |
Definition at line 219 of file rack.c.
Referenced by rack_init_sysctls(), and rack_output().
|
static |
Definition at line 331 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().
|
static |
Definition at line 323 of file rack.c.
Referenced by rack_init_sysctls().
|
static |
Definition at line 220 of file rack.c.
Referenced by rack_init_sysctls(), and rack_output().
|
static |
Definition at line 221 of file rack.c.
Referenced by rack_init_sysctls(), and rack_output().
|
static |
Definition at line 215 of file rack.c.
Referenced by rack_ack_received(), rack_do_compressed_ack_processing(), rack_do_segment_nounlock(), rack_init_sysctls(), rack_log_hpts_diag(), rack_log_map_chg(), rack_log_progress_event(), rack_log_retran_reason(), rack_log_rtt_sample_calc(), rack_log_wakeup(), rack_post_recovery(), rack_set_cc_pacing(), and rack_undo_cc_pacing().
|
static |
Definition at line 262 of file rack.c.
Referenced by rack_do_goodput_measurement(), and rack_init_sysctls().
uma_zone_t rack_zone |
Definition at line 137 of file rack.c.
Referenced by rack_alloc(), rack_fini(), rack_free_trim(), and tcp_addrack().
|
static |
|
static |
Definition at line 231 of file rack.c.
Referenced by rack_init(), and rack_init_sysctls().