FreeBSD kernel IPv4 code
tcp_rack Struct Reference

#include <tcp_rack.h>

Collaboration diagram for tcp_rack:

Public Member Functions

 TAILQ_ENTRY (tcp_rack) r_hpts
 

Data Fields

int32_t(* r_substate )(struct mbuf *, struct tcphdr *, struct socket *, struct tcpcb *, struct tcpopt *, int32_t, int32_t, uint32_t, int, int, uint8_t)
 
struct tcpcbrc_tp
 
struct inpcbrc_inp
 
uint8_t rc_free_cnt
 
uint8_t client_bufferlvl
 
uint8_t no_prr_addback: 1
 
uint8_t gp_ready: 1
 
uint8_t defer_options: 1
 
uint8_t fast_rsm_hack: 1
 
uint8_t rc_ack_can_sendout_data: 1
 
uint8_t rc_pacing_cc_set: 1
 
uint8_t rc_rack_tmr_std_based:1
 
uint8_t rc_rack_use_dsack: 1
 
uint8_t rc_dsack_round_seen: 1
 
uint8_t rc_last_tlp_acked_set: 1
 
uint8_t rc_last_tlp_past_cumack: 1
 
uint8_t rc_last_sent_tlp_seq_valid: 1
 
uint8_t rc_last_sent_tlp_past_cumack: 1
 
uint8_t probe_not_answered: 1
 
uint8_t avail_bytes: 2
 
uint32_t rc_rack_rtt
 
uint16_t r_mbuf_queue: 1
 
uint16_t rtt_limit_mul: 4
 
uint16_t r_limit_scw: 1
 
uint16_t r_must_retran: 1
 
uint16_t r_use_cmp_ack: 1
 
uint16_t r_ent_rec_ns: 1
 
uint16_t r_might_revert: 1
 
uint16_t r_fast_output: 1
 
uint16_t r_fsb_inited: 1
 
uint16_t r_rack_hw_rate_caps: 1
 
uint16_t r_up_only: 1
 
uint16_t r_via_fill_cw: 1
 
uint16_t r_fill_less_agg: 1
 
uint8_t rc_user_set_max_segs
 
uint8_t rc_labc
 
uint16_t forced_ack: 1
 
uint16_t rc_gp_incr: 1
 
uint16_t rc_gp_bwred: 1
 
uint16_t rc_gp_timely_inc_cnt: 3
 
uint16_t rc_gp_timely_dec_cnt: 3
 
uint16_t r_use_labc_for_rec: 1
 
uint16_t rc_highly_buffered: 1
 
uint16_t rc_dragged_bottom: 1
 
uint16_t rc_dack_mode: 1
 
uint16_t rc_dack_toggle: 1
 
uint16_t rc_gp_filled: 1
 
uint16_t rc_is_spare: 1
 
uint8_t r_state
 
uint8_t rc_tmr_stopped: 7
 
uint8_t t_timers_stopped: 1
 
uint8_t rc_enobuf: 7
 
uint8_t rc_on_min_to: 1
 
uint8_t r_timer_override: 1
 
uint8_t r_is_v6: 1
 
uint8_t rc_in_persist: 1
 
uint8_t rc_tlp_in_progress: 1
 
uint8_t rc_always_pace: 1
 
uint8_t rc_pace_to_cwnd: 1
 
uint8_t rc_pace_fill_if_rttin_range: 1
 
uint8_t rc_srtt_measure_made: 1
 
uint8_t app_limited_needs_set: 1
 
uint8_t use_fixed_rate: 1
 
uint8_t rc_has_collapsed: 1
 
uint8_t r_rep_attack: 1
 
uint8_t r_rep_reverse: 1
 
uint8_t rack_hdrw_pacing: 1
 
uint8_t rack_hdw_pace_ena: 1
 
uint8_t rack_attempt_hdwr_pace: 1
 
uint8_t rack_tlp_threshold_use: 3
 
uint8_t rack_rec_nonrxt_use_cr: 1
 
uint8_t rack_enable_scwnd: 1
 
uint8_t rack_attempted_scwnd: 1
 
uint8_t rack_no_prr: 1
 
uint8_t rack_scwnd_is_idle: 1
 
uint8_t rc_allow_data_af_clo: 1
 
uint8_t delayed_ack: 1
 
uint8_t set_pacing_done_a_iw: 1
 
uint8_t use_rack_rr: 1
 
uint8_t alloc_limit_reported: 1
 
uint8_t sack_attack_disable: 1
 
uint8_t do_detection: 1
 
uint8_t rc_force_max_seg: 1
 
uint8_t r_early: 1
 
uint8_t r_late: 1
 
uint8_t r_wanted_output: 1
 
uint8_t r_rr_config: 2
 
uint8_t rc_avail_bit: 3
 
uint16_t rc_init_win: 8
 
uint16_t rc_gp_rtt_set: 1
 
uint16_t rc_gp_dyn_mul: 1
 
uint16_t rc_gp_saw_rec: 1
 
uint16_t rc_gp_saw_ca: 1
 
uint16_t rc_gp_saw_ss: 1
 
uint16_t rc_gp_no_rec_chg: 1
 
uint16_t in_probe_rtt: 1
 
uint16_t measure_saw_probe_rtt: 1
 
struct rack_control r_ctl
 

Detailed Description

Definition at line 506 of file tcp_rack.h.

Member Function Documentation

◆ TAILQ_ENTRY()

tcp_rack::TAILQ_ENTRY ( tcp_rack  )

Field Documentation

◆ alloc_limit_reported

uint8_t tcp_rack::alloc_limit_reported

Definition at line 609 of file tcp_rack.h.

Referenced by rack_alloc_full_limit(), rack_alloc_limit(), and rack_output().

◆ app_limited_needs_set

◆ avail_bytes

uint8_t tcp_rack::avail_bytes

Definition at line 548 of file tcp_rack.h.

◆ client_bufferlvl

uint8_t tcp_rack::client_bufferlvl

Definition at line 516 of file tcp_rack.h.

Referenced by rack_ack_received().

◆ defer_options

◆ delayed_ack

uint8_t tcp_rack::delayed_ack

Definition at line 606 of file tcp_rack.h.

◆ do_detection

uint8_t tcp_rack::do_detection

◆ fast_rsm_hack

uint8_t tcp_rack::fast_rsm_hack

Definition at line 520 of file tcp_rack.h.

Referenced by rack_fast_rsm_output(), rack_get_sockopt(), and rack_process_option().

◆ forced_ack

◆ gp_ready

◆ in_probe_rtt

◆ measure_saw_probe_rtt

◆ no_prr_addback

uint8_t tcp_rack::no_prr_addback

Definition at line 517 of file tcp_rack.h.

Referenced by rack_get_sockopt(), rack_post_recovery(), and rack_process_option().

◆ probe_not_answered

◆ r_ctl

struct rack_control tcp_rack::r_ctl

Definition at line 628 of file tcp_rack.h.

Referenced by is_rsm_inside_declared_tlp_block(), pace_to_fill_cwnd(), rack_ack_received(), rack_add_deferred_option(), rack_adjust_sendmap(), rack_alloc(), rack_alloc_full_limit(), rack_alloc_limit(), rack_apply_deferred_options(), rack_apply_updated_usrtt(), rack_calc_thresh_rack(), rack_calc_thresh_tlp(), rack_check_bottom_drag(), rack_check_probe_rtt(), rack_check_recovery_mode(), rack_clear_rate_sample(), rack_collapsed_window(), rack_cong_signal(), rack_decrease_bw_mul(), rack_decrease_highrtt(), rack_do_close_wait(), rack_do_closing(), rack_do_compressed_ack_processing(), rack_do_decay(), rack_do_established(), rack_do_fastnewdata(), rack_do_fin_wait_1(), rack_do_fin_wait_2(), rack_do_goodput_measurement(), rack_do_lastack(), rack_do_segment_nounlock(), rack_do_syn_recv(), rack_do_syn_sent(), rack_do_win_updates(), rack_enough_for_measurement(), rack_enter_persist(), rack_enter_probertt(), rack_exit_persist(), rack_exit_probertt(), rack_fast_output(), rack_fast_rsm_output(), rack_fastack(), rack_find_lowest_rsm(), rack_fini(), rack_fo_m_copym(), rack_free(), rack_free_trim(), rack_gain_for_fastoutput(), rack_get_bw(), rack_get_decrease(), rack_get_fixed_pacing_bw(), rack_get_measure_window(), rack_get_output_bw(), rack_get_output_gain(), rack_get_pacing_delay(), rack_get_pacing_len(), rack_get_persists_timer_val(), rack_get_sockopt(), rack_handle_delayed_ack(), rack_handle_might_revert(), rack_handle_probe_response(), rack_hw_tls_change(), rack_increase_bw_mul(), rack_init(), rack_init_fsb(), rack_init_fsb_block(), rack_log_ack(), rack_log_doseg_done(), rack_log_dsack_event(), rack_log_fsb(), rack_log_hdwr_pacing(), rack_log_input_packet(), rack_log_map_chg(), rack_log_output(), rack_log_pacing_delay_calc(), rack_log_progress_event(), rack_log_retran_reason(), rack_log_rtt_sample(), rack_log_rtt_shrinks(), rack_log_rtt_upd(), rack_log_sack_passed(), rack_log_timely(), rack_log_to_cancel(), rack_log_to_event(), rack_log_to_processing(), rack_log_to_prr(), rack_log_to_start(), rack_log_type_bbrsnd(), rack_log_type_just_return(), rack_log_type_pacing_sizes(), rack_make_timely_judgement(), rack_merge_rsm(), rack_mtu_change(), rack_need_set_test(), rack_note_dsack(), rack_output(), rack_peer_reneges(), rack_post_recovery(), rack_proc_sack_blk(), rack_process_ack(), rack_process_data(), rack_process_option(), rack_process_timers(), rack_process_to_cumack(), rack_remxt_tmr(), rack_set_cc_pacing(), rack_set_pace_segments(), rack_set_profile(), rack_set_prtt_target(), rack_set_sockopt(), rack_sndbuf_autoscale(), rack_start_gp_measurement(), rack_start_hpts_timer(), rack_strike_dupack(), rack_timeout_delack(), rack_timeout_keepalive(), rack_timeout_persist(), rack_timeout_rack(), rack_timeout_rxt(), rack_timeout_tlp(), rack_timer_audit(), rack_timer_cancel(), rack_timer_start(), rack_un_collapse_window(), rack_undo_cc_pacing(), rack_update_entry(), rack_update_multiplier(), rack_update_prr(), rack_update_rsm(), rack_update_rtt(), rack_update_seg(), rack_validate_fo_sendwin_up(), rack_validate_multipliers_at_or_above100(), rack_validate_multipliers_at_or_below_100(), rack_what_can_we_send(), tcp_rack_output(), tcp_rack_partialack(), tcp_rack_xmit_timer(), and tcp_rack_xmit_timer_commit().

◆ r_early

◆ r_ent_rec_ns

◆ r_fast_output

◆ r_fill_less_agg

uint16_t tcp_rack::r_fill_less_agg

◆ r_fsb_inited

uint16_t tcp_rack::r_fsb_inited

Definition at line 558 of file tcp_rack.h.

Referenced by rack_init_fsb(), rack_init_fsb_block(), rack_log_fsb(), and rack_output().

◆ r_is_v6

◆ r_late

◆ r_limit_scw

uint16_t tcp_rack::r_limit_scw

◆ r_mbuf_queue

uint16_t tcp_rack::r_mbuf_queue

Definition at line 550 of file tcp_rack.h.

Referenced by rack_get_sockopt(), rack_init(), rack_process_option(), and rack_set_profile().

◆ r_might_revert

◆ r_must_retran

◆ r_rack_hw_rate_caps

uint16_t tcp_rack::r_rack_hw_rate_caps

◆ r_rep_attack

uint8_t tcp_rack::r_rep_attack

Definition at line 594 of file tcp_rack.h.

◆ r_rep_reverse

uint8_t tcp_rack::r_rep_reverse

Definition at line 595 of file tcp_rack.h.

◆ r_rr_config

◆ r_state

◆ r_substate

int32_t(* tcp_rack::r_substate) (struct mbuf *, struct tcphdr *, struct socket *, struct tcpcb *, struct tcpopt *, int32_t, int32_t, uint32_t, int, int, uint8_t)

Definition at line 509 of file tcp_rack.h.

Referenced by rack_do_segment_nounlock(), and rack_set_state().

◆ r_timer_override

uint8_t tcp_rack::r_timer_override

◆ r_up_only

uint16_t tcp_rack::r_up_only

◆ r_use_cmp_ack

uint16_t tcp_rack::r_use_cmp_ack

◆ r_use_labc_for_rec

uint16_t tcp_rack::r_use_labc_for_rec

Definition at line 571 of file tcp_rack.h.

Referenced by rack_ack_received(), rack_get_sockopt(), and rack_process_option().

◆ r_via_fill_cw

uint16_t tcp_rack::r_via_fill_cw

Definition at line 561 of file tcp_rack.h.

Referenced by pace_to_fill_cwnd(), and rack_get_pacing_delay().

◆ r_wanted_output

◆ rack_attempt_hdwr_pace

uint8_t tcp_rack::rack_attempt_hdwr_pace

◆ rack_attempted_scwnd

uint8_t tcp_rack::rack_attempted_scwnd

Definition at line 602 of file tcp_rack.h.

Referenced by rack_output().

◆ rack_enable_scwnd

uint8_t tcp_rack::rack_enable_scwnd

◆ rack_hdrw_pacing

◆ rack_hdw_pace_ena

◆ rack_no_prr

◆ rack_rec_nonrxt_use_cr

uint8_t tcp_rack::rack_rec_nonrxt_use_cr

Definition at line 600 of file tcp_rack.h.

Referenced by rack_get_output_gain(), rack_get_sockopt(), rack_init(), and rack_process_option().

◆ rack_scwnd_is_idle

uint8_t tcp_rack::rack_scwnd_is_idle

Definition at line 604 of file tcp_rack.h.

Referenced by rack_enter_persist(), rack_exit_persist(), and rack_output().

◆ rack_tlp_threshold_use

uint8_t tcp_rack::rack_tlp_threshold_use

Definition at line 599 of file tcp_rack.h.

Referenced by rack_calc_thresh_tlp(), rack_get_sockopt(), rack_init(), and rack_process_option().

◆ rc_ack_can_sendout_data

uint8_t tcp_rack::rc_ack_can_sendout_data

◆ rc_allow_data_af_clo

uint8_t tcp_rack::rc_allow_data_af_clo

◆ rc_always_pace

◆ rc_avail_bit

uint8_t tcp_rack::rc_avail_bit

Definition at line 617 of file tcp_rack.h.

◆ rc_dack_mode

uint16_t tcp_rack::rc_dack_mode

Definition at line 574 of file tcp_rack.h.

Referenced by rack_handle_delayed_ack(), and rack_init().

◆ rc_dack_toggle

uint16_t tcp_rack::rc_dack_toggle

Definition at line 575 of file tcp_rack.h.

Referenced by rack_do_syn_sent(), and rack_handle_delayed_ack().

◆ rc_dragged_bottom

uint16_t tcp_rack::rc_dragged_bottom

◆ rc_dsack_round_seen

uint8_t tcp_rack::rc_dsack_round_seen

◆ rc_enobuf

uint8_t tcp_rack::rc_enobuf

Definition at line 581 of file tcp_rack.h.

Referenced by rack_output().

◆ rc_force_max_seg

uint8_t tcp_rack::rc_force_max_seg

◆ rc_free_cnt

uint8_t tcp_rack::rc_free_cnt

Definition at line 514 of file tcp_rack.h.

Referenced by rack_alloc(), rack_fini(), rack_free(), rack_free_trim(), and rack_output().

◆ rc_gp_bwred

uint16_t tcp_rack::rc_gp_bwred

Definition at line 568 of file tcp_rack.h.

Referenced by rack_exit_probertt(), rack_log_timely(), and rack_update_multiplier().

◆ rc_gp_dyn_mul

◆ rc_gp_filled

◆ rc_gp_incr

◆ rc_gp_no_rec_chg

uint16_t tcp_rack::rc_gp_no_rec_chg

◆ rc_gp_rtt_set

uint16_t tcp_rack::rc_gp_rtt_set

Definition at line 619 of file tcp_rack.h.

Referenced by rack_do_goodput_measurement(), and tcp_rack_xmit_timer_commit().

◆ rc_gp_saw_ca

◆ rc_gp_saw_rec

◆ rc_gp_saw_ss

◆ rc_gp_timely_dec_cnt

uint16_t tcp_rack::rc_gp_timely_dec_cnt

◆ rc_gp_timely_inc_cnt

uint16_t tcp_rack::rc_gp_timely_inc_cnt

◆ rc_has_collapsed

uint8_t tcp_rack::rc_has_collapsed

◆ rc_highly_buffered

uint16_t tcp_rack::rc_highly_buffered

◆ rc_in_persist

◆ rc_init_win

uint16_t tcp_rack::rc_init_win

Definition at line 618 of file tcp_rack.h.

Referenced by rack_get_sockopt(), rack_init(), rack_process_option(), and rc_init_window().

◆ rc_inp

◆ rc_is_spare

uint16_t tcp_rack::rc_is_spare

Definition at line 577 of file tcp_rack.h.

◆ rc_labc

uint8_t tcp_rack::rc_labc

Definition at line 565 of file tcp_rack.h.

Referenced by rack_ack_received(), rack_get_sockopt(), rack_init(), and rack_process_option().

◆ rc_last_sent_tlp_past_cumack

uint8_t tcp_rack::rc_last_sent_tlp_past_cumack

Definition at line 546 of file tcp_rack.h.

Referenced by rack_fast_rsm_output(), rack_output(), and rack_process_to_cumack().

◆ rc_last_sent_tlp_seq_valid

uint8_t tcp_rack::rc_last_sent_tlp_seq_valid

◆ rc_last_tlp_acked_set

uint8_t tcp_rack::rc_last_tlp_acked_set

Definition at line 543 of file tcp_rack.h.

Referenced by rack_note_dsack(), rack_proc_sack_blk(), and rack_process_to_cumack().

◆ rc_last_tlp_past_cumack

uint8_t tcp_rack::rc_last_tlp_past_cumack

Definition at line 544 of file tcp_rack.h.

Referenced by rack_proc_sack_blk(), and rack_process_to_cumack().

◆ rc_on_min_to

uint8_t tcp_rack::rc_on_min_to

Definition at line 582 of file tcp_rack.h.

Referenced by rack_process_timers(), rack_timeout_rack(), and rack_timer_start().

◆ rc_pace_fill_if_rttin_range

uint8_t tcp_rack::rc_pace_fill_if_rttin_range

Definition at line 589 of file tcp_rack.h.

Referenced by pace_to_fill_cwnd(), rack_process_option(), and rack_set_profile().

◆ rc_pace_to_cwnd

uint8_t tcp_rack::rc_pace_to_cwnd

◆ rc_pacing_cc_set

uint8_t tcp_rack::rc_pacing_cc_set

◆ rc_rack_rtt

uint32_t tcp_rack::rc_rack_rtt

Definition at line 549 of file tcp_rack.h.

Referenced by rack_grab_rtt(), rack_log_to_event(), and rack_update_rtt().

◆ rc_rack_tmr_std_based

uint8_t tcp_rack::rc_rack_tmr_std_based

◆ rc_rack_use_dsack

uint8_t tcp_rack::rc_rack_use_dsack

◆ rc_srtt_measure_made

uint8_t tcp_rack::rc_srtt_measure_made

Definition at line 590 of file tcp_rack.h.

Referenced by rack_timer_start(), and tcp_rack_xmit_timer_commit().

◆ rc_tlp_in_progress

◆ rc_tmr_stopped

uint8_t tcp_rack::rc_tmr_stopped

Definition at line 579 of file tcp_rack.h.

Referenced by rack_process_timers(), rack_start_hpts_timer(), and rack_timer_cancel().

◆ rc_tp

struct tcpcb* tcp_rack::rc_tp

Definition at line 512 of file tcp_rack.h.

Referenced by pace_to_fill_cwnd(), rack_ack_received(), rack_apply_deferred_options(), rack_check_bottom_drag(), rack_check_probe_rtt(), rack_collapsed_window(), rack_do_compressed_ack_processing(), rack_do_decay(), rack_do_goodput_measurement(), rack_do_segment_nounlock(), rack_enter_probertt(), rack_exit_probertt(), rack_fast_output(), rack_fast_rsm_output(), rack_fastack(), rack_get_bw(), rack_get_fixed_pacing_bw(), rack_get_output_gain(), rack_get_pacing_delay(), rack_get_pacing_len(), rack_handle_probe_response(), rack_init(), rack_log_ack(), rack_log_alt_to_to_cancel(), rack_log_doseg_done(), rack_log_dsack_event(), rack_log_fsb(), rack_log_hdwr_pacing(), rack_log_hpts_diag(), rack_log_map_chg(), rack_log_output(), rack_log_pacing_delay_calc(), rack_log_progress_event(), rack_log_retran_reason(), rack_log_rtt_sample(), rack_log_rtt_sample_calc(), rack_log_rtt_shrinks(), rack_log_rtt_upd(), rack_log_timely(), rack_log_to_cancel(), rack_log_to_event(), rack_log_to_processing(), rack_log_to_prr(), rack_log_to_start(), rack_log_type_bbrsnd(), rack_log_type_just_return(), rack_log_type_pacing_sizes(), rack_log_wakeup(), rack_merge_rsm(), rack_note_dsack(), rack_output(), rack_post_recovery(), rack_process_ack(), rack_process_option(), rack_remxt_tmr(), rack_set_cc_pacing(), rack_set_pace_segments(), rack_set_profile(), rack_sndbuf_autoscale(), rack_start_gp_measurement(), rack_strike_dupack(), rack_undo_cc_pacing(), rack_update_rsm(), rack_update_seg(), rc_init_window(), tcp_rack_output(), and tcp_rack_xmit_timer().

◆ rc_user_set_max_segs

◆ rtt_limit_mul

uint16_t tcp_rack::rtt_limit_mul

Definition at line 551 of file tcp_rack.h.

Referenced by pace_to_fill_cwnd(), rack_process_option(), and rack_set_profile().

◆ sack_attack_disable

◆ set_pacing_done_a_iw

uint8_t tcp_rack::set_pacing_done_a_iw

Definition at line 607 of file tcp_rack.h.

Referenced by rack_do_segment_nounlock().

◆ t_timers_stopped

uint8_t tcp_rack::t_timers_stopped

Definition at line 580 of file tcp_rack.h.

Referenced by rack_stopall(), and rack_timer_start().

◆ use_fixed_rate

◆ use_rack_rr


The documentation for this struct was generated from the following file: