FreeBSD kernel IPv4 code
tcp_bbr Struct Reference

#include <tcp_bbr.h>

Collaboration diagram for tcp_bbr:

Data Fields

int32_t(* r_substate )(struct mbuf *, struct tcphdr *, struct socket *, struct tcpcb *, struct tcpopt *, int32_t, int32_t, uint32_t, int32_t, int32_t, uint8_t)
 
struct tcpcbrc_tp
 
struct inpcbrc_inp
 
struct timeval rc_tv
 
uint32_t rc_pacer_started
 
uint16_t no_pacing_until:8
 
uint16_t ts_can_raise:1
 
uint16_t skip_gain:1
 
uint16_t gain_is_limited:1
 
uint16_t output_error_seen:1
 
uint16_t oerror_cnt:4
 
uint16_t hw_pacing_set:1
 
uint16_t xxx_r_ack_count
 
uint16_t bbr_segs_rcvd
 
uint8_t bbr_timer_src:4
 
uint8_t bbr_use_rack_cheat:1
 
uint8_t bbr_init_win_cheat:1
 
uint8_t bbr_attempt_hdwr_pace:1
 
uint8_t bbr_hdrw_pacing:1
 
uint8_t bbr_hdw_pace_ena:1
 
uint8_t bbr_prev_in_rec:1
 
uint8_t pkt_conservation:1
 
uint8_t use_policer_detection:1
 
uint8_t xxx_bbr_hdw_pace_idx:4
 
uint16_t r_wanted_output:1
 
uint16_t rtt_valid:1
 
uint16_t rc_timer_first:1
 
uint16_t rc_output_starts_timer:1
 
uint16_t rc_resends_use_tso:1
 
uint16_t rc_all_timers_stopped:1
 
uint16_t rc_loss_exit:1
 
uint16_t rc_ack_was_delayed:1
 
uint16_t rc_lt_is_sampling:1
 
uint16_t rc_filled_pipe:1
 
uint16_t rc_tlp_new_data:1
 
uint16_t rc_hit_state_1:1
 
uint16_t rc_ts_valid:1
 
uint16_t rc_prtt_set_ts:1
 
uint16_t rc_is_pkt_epoch_now:1
 
uint16_t rc_has_collapsed:1
 
uint8_t r_state:4
 
uint8_t r_agg_early_set:1
 
uint8_t r_init_rtt:1
 
uint8_t r_use_policer:1
 
uint8_t r_recovery_bw:1
 
uint8_t r_timer_override:1
 
uint8_t rc_in_persist:1
 
uint8_t rc_lt_use_bw:1
 
uint8_t rc_allow_data_af_clo:1
 
uint8_t rc_tlp_rtx_out:1
 
uint8_t rc_tlp_in_progress:1
 
uint8_t rc_use_idle_restart:1
 
uint8_t rc_bbr_state:3
 
uint8_t rc_bbr_substate:3
 
uint8_t r_is_v6:1
 
uint8_t rc_past_init_win:1
 
uint8_t rc_last_options
 
uint8_t rc_tlp_threshold
 
uint8_t rc_max_rto_sec
 
uint8_t rc_cwnd_limited:1
 
uint8_t rc_tmr_stopped:7
 
uint8_t rc_use_google:1
 
uint8_t rc_use_ts_limit:1
 
uint8_t rc_ts_data_set:1
 
uint8_t rc_ts_clock_set:1
 
uint8_t rc_ts_cant_be_used:1
 
uint8_t rc_ack_is_cumack:1
 
uint8_t rc_no_pacing:1
 
uint8_t alloc_limit_reported:1
 
uint8_t rc_init_win
 
struct bbr_control r_ctl
 

Detailed Description

Definition at line 716 of file tcp_bbr.h.

Field Documentation

◆ alloc_limit_reported

uint8_t tcp_bbr::alloc_limit_reported

Definition at line 791 of file tcp_bbr.h.

Referenced by bbr_alloc_full_limit(), bbr_alloc_limit(), and bbr_output_wtime().

◆ bbr_attempt_hdwr_pace

uint8_t tcp_bbr::bbr_attempt_hdwr_pace

Definition at line 739 of file tcp_bbr.h.

Referenced by bbr_output_wtime(), bbr_set_sockopt(), and bbr_update_hardware_pacing_rate().

◆ bbr_hdrw_pacing

◆ bbr_hdw_pace_ena

uint8_t tcp_bbr::bbr_hdw_pace_ena

Definition at line 741 of file tcp_bbr.h.

Referenced by bbr_get_sockopt(), bbr_init(), bbr_output_wtime(), and bbr_set_sockopt().

◆ bbr_init_win_cheat

uint8_t tcp_bbr::bbr_init_win_cheat

Definition at line 738 of file tcp_bbr.h.

Referenced by bbr_get_sockopt(), bbr_init(), bbr_set_sockopt(), and tcp_bbr_tso_size_check().

◆ bbr_prev_in_rec

uint8_t tcp_bbr::bbr_prev_in_rec

Definition at line 742 of file tcp_bbr.h.

Referenced by bbr_ack_received(), and bbr_post_recovery().

◆ bbr_segs_rcvd

uint16_t tcp_bbr::bbr_segs_rcvd

Definition at line 734 of file tcp_bbr.h.

Referenced by bbr_do_fastnewdata(), bbr_do_syn_sent(), bbr_output_wtime(), and bbr_process_data().

◆ bbr_timer_src

uint8_t tcp_bbr::bbr_timer_src

◆ bbr_use_rack_cheat

uint8_t tcp_bbr::bbr_use_rack_cheat

◆ gain_is_limited

◆ hw_pacing_set

uint16_t tcp_bbr::hw_pacing_set

Definition at line 731 of file tcp_bbr.h.

Referenced by bbr_adjust_for_hw_pacing(), and bbr_output_wtime().

◆ no_pacing_until

uint16_t tcp_bbr::no_pacing_until

◆ oerror_cnt

uint16_t tcp_bbr::oerror_cnt

Definition at line 730 of file tcp_bbr.h.

Referenced by bbr_output_wtime().

◆ output_error_seen

uint16_t tcp_bbr::output_error_seen

Definition at line 729 of file tcp_bbr.h.

Referenced by bbr_output_wtime(), and bbr_start_hpts_timer().

◆ pkt_conservation

uint8_t tcp_bbr::pkt_conservation

Definition at line 743 of file tcp_bbr.h.

Referenced by bbr_ack_received(), and bbr_post_recovery().

◆ r_agg_early_set

uint8_t tcp_bbr::r_agg_early_set

Definition at line 764 of file tcp_bbr.h.

Referenced by bbr_exit_persist(), bbr_output_wtime(), bbr_remxt_tmr(), and bbr_start_hpts_timer().

◆ r_ctl

struct bbr_control tcp_bbr::r_ctl

Definition at line 794 of file tcp_bbr.h.

Referenced by __bbr_get_bw(), bbr_ack_received(), bbr_adjust_for_hw_pacing(), bbr_alloc(), bbr_alloc_full_limit(), bbr_alloc_limit(), bbr_calc_thresh_rack(), bbr_check_bbr_for_state(), bbr_check_probe_rtt_limits(), bbr_check_recovery_mode(), bbr_clone_rsm(), bbr_collapsed_window(), bbr_cong_signal(), bbr_do_established(), bbr_do_fastnewdata(), bbr_do_segment_nounlock(), bbr_do_syn_recv(), bbr_do_syn_sent(), bbr_enter_persist(), bbr_enter_probe_rtt(), bbr_exit_persist(), bbr_exit_probe_rtt(), bbr_fastack(), bbr_fill_in_logging_data(), bbr_find_high_nonack(), bbr_find_lowest_rsm(), bbr_fini(), bbr_free(), bbr_get_a_state_target(), bbr_get_earliest_send_outstanding(), bbr_get_full_bw(), bbr_get_header_oh(), bbr_get_pacing_delay(), bbr_get_persists_timer_val(), bbr_get_raw_target_cwnd(), bbr_get_rtt(), bbr_get_sockopt(), bbr_get_target_cwnd(), bbr_google_measurement(), bbr_google_mode_off(), bbr_google_mode_on(), bbr_google_startup(), bbr_init(), bbr_isit_a_pkt_epoch(), bbr_log_ack(), bbr_log_ack_clear(), bbr_log_ack_event(), bbr_log_doseg_done(), bbr_log_exit_gain(), bbr_log_output(), bbr_log_pkt_epoch(), bbr_log_progress_event(), bbr_log_rtt_sample(), bbr_log_rtt_shrinks(), bbr_log_sack_passed(), bbr_log_set_of_state_target(), bbr_log_settings_change(), bbr_log_startup_event(), bbr_log_syn(), bbr_log_thresh_choice(), bbr_log_time_epoch(), bbr_log_to_cancel(), bbr_log_to_event(), bbr_log_to_processing(), bbr_log_to_start(), bbr_log_tstmp_validation(), bbr_log_type_bbrrttprop(), bbr_log_type_bbrsnd(), bbr_log_type_bbrupd(), bbr_log_type_bw_reduce(), bbr_log_type_cwndupd(), bbr_log_type_enter_rec(), bbr_log_type_exit_rec(), bbr_log_type_just_return(), bbr_log_type_ltbw(), bbr_log_type_rwnd_collapse(), bbr_log_type_statechange(), bbr_log_type_tsosize(), bbr_lt_bw_samp_done(), bbr_lt_bw_sampling(), bbr_make_timestamp_determination(), bbr_merge_rsm(), bbr_minseg(), bbr_mtu_chg(), bbr_nf_measurement(), bbr_output_wtime(), bbr_peer_reneges(), bbr_pick_probebw_substate(), bbr_post_recovery(), bbr_proc_sack_blk(), bbr_process_ack(), bbr_process_data(), bbr_process_timers(), bbr_randomize_extra_state_time(), bbr_remxt_tmr(), bbr_reset_lt_bw_interval(), bbr_reset_lt_bw_sampling(), bbr_restart_after_idle(), bbr_set_epoch(), bbr_set_pktepoch(), bbr_set_probebw_gains(), bbr_set_probebw_google_gains(), bbr_set_reduced_rtt(), bbr_set_sockopt(), bbr_set_state(), bbr_set_state_target(), bbr_setup_less_of_rate(), bbr_setup_red_bw(), bbr_should_enter_probe_rtt(), bbr_start_hpts_timer(), bbr_state_change(), bbr_state_startup(), bbr_strike_dupack(), bbr_substate_change(), bbr_timeout_delack(), bbr_timeout_keepalive(), bbr_timeout_persist(), bbr_timeout_rack(), bbr_timeout_rxt(), bbr_timeout_tlp(), bbr_timer_audit(), bbr_timer_cancel(), bbr_timer_start(), bbr_un_collapse_window(), bbr_update_bbr_info(), bbr_update_entry(), bbr_update_hardware_pacing_rate(), bbr_update_rsm(), bbr_update_rtt(), bbr_what_can_we_send(), get_min_cwnd(), tcp_bbr_commit_bw(), tcp_bbr_partialack(), tcp_bbr_tso_size_check(), tcp_bbr_xmit_timer(), and tcp_bbr_xmit_timer_commit().

◆ r_init_rtt

uint8_t tcp_bbr::r_init_rtt

Definition at line 765 of file tcp_bbr.h.

Referenced by bbr_init(), and tcp_bbr_xmit_timer_commit().

◆ r_is_v6

uint8_t tcp_bbr::r_is_v6

◆ r_recovery_bw

uint8_t tcp_bbr::r_recovery_bw

Definition at line 767 of file tcp_bbr.h.

Referenced by __bbr_get_bw(), bbr_output_wtime(), bbr_post_recovery(), and tcp_bbr_commit_bw().

◆ r_state

◆ r_substate

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

Definition at line 718 of file tcp_bbr.h.

Referenced by bbr_do_segment_nounlock(), and bbr_set_state().

◆ r_timer_override

uint8_t tcp_bbr::r_timer_override

Definition at line 768 of file tcp_bbr.h.

Referenced by bbr_output_wtime(), and bbr_remxt_tmr().

◆ r_use_policer

uint8_t tcp_bbr::r_use_policer

◆ r_wanted_output

◆ rc_ack_is_cumack

uint8_t tcp_bbr::rc_ack_is_cumack

Definition at line 789 of file tcp_bbr.h.

Referenced by bbr_update_bbr_info(), and tcp_bbr_xmit_timer_commit().

◆ rc_ack_was_delayed

uint16_t tcp_bbr::rc_ack_was_delayed

◆ rc_all_timers_stopped

◆ rc_allow_data_af_clo

uint8_t tcp_bbr::rc_allow_data_af_clo

Definition at line 771 of file tcp_bbr.h.

Referenced by bbr_check_data_after_close(), bbr_get_sockopt(), bbr_init(), and bbr_set_sockopt().

◆ rc_bbr_state

◆ rc_bbr_substate

uint8_t tcp_bbr::rc_bbr_substate

◆ rc_cwnd_limited

uint8_t tcp_bbr::rc_cwnd_limited

Definition at line 782 of file tcp_bbr.h.

Referenced by bbr_output_wtime(), and bbr_start_hpts_timer().

◆ rc_filled_pipe

uint16_t tcp_bbr::rc_filled_pipe

◆ rc_has_collapsed

uint16_t tcp_bbr::rc_has_collapsed

◆ rc_hit_state_1

◆ rc_in_persist

◆ rc_init_win

uint8_t tcp_bbr::rc_init_win

Definition at line 792 of file tcp_bbr.h.

Referenced by bbr_get_sockopt(), bbr_init(), bbr_initial_cwnd(), and bbr_set_sockopt().

◆ rc_inp

◆ rc_is_pkt_epoch_now

uint16_t tcp_bbr::rc_is_pkt_epoch_now

◆ rc_last_options

◆ rc_loss_exit

uint16_t tcp_bbr::rc_loss_exit

Definition at line 752 of file tcp_bbr.h.

Referenced by bbr_get_sockopt(), bbr_init(), bbr_set_sockopt(), and bbr_state_startup().

◆ rc_lt_is_sampling

uint16_t tcp_bbr::rc_lt_is_sampling

◆ rc_lt_use_bw

◆ rc_max_rto_sec

◆ rc_no_pacing

◆ rc_output_starts_timer

uint16_t tcp_bbr::rc_output_starts_timer

Definition at line 749 of file tcp_bbr.h.

Referenced by bbr_do_segment_nounlock(), and bbr_output_wtime().

◆ rc_pacer_started

uint32_t tcp_bbr::rc_pacer_started

◆ rc_past_init_win

◆ rc_prtt_set_ts

uint16_t tcp_bbr::rc_prtt_set_ts

Definition at line 759 of file tcp_bbr.h.

Referenced by bbr_enter_probe_rtt(), and tcp_bbr_xmit_timer_commit().

◆ rc_resends_use_tso

uint16_t tcp_bbr::rc_resends_use_tso

Definition at line 750 of file tcp_bbr.h.

Referenced by bbr_get_sockopt(), bbr_init(), bbr_output_wtime(), and bbr_set_sockopt().

◆ rc_timer_first

uint16_t tcp_bbr::rc_timer_first

◆ rc_tlp_in_progress

uint8_t tcp_bbr::rc_tlp_in_progress

Definition at line 773 of file tcp_bbr.h.

Referenced by bbr_output_wtime(), and bbr_timer_start().

◆ rc_tlp_new_data

uint16_t tcp_bbr::rc_tlp_new_data

Definition at line 756 of file tcp_bbr.h.

Referenced by bbr_output_wtime(), bbr_remxt_tmr(), and bbr_timeout_tlp().

◆ rc_tlp_rtx_out

uint8_t tcp_bbr::rc_tlp_rtx_out

◆ rc_tlp_threshold

uint8_t tcp_bbr::rc_tlp_threshold

Definition at line 780 of file tcp_bbr.h.

Referenced by bbr_calc_thresh_tlp(), bbr_get_sockopt(), bbr_init(), and bbr_set_sockopt().

◆ rc_tmr_stopped

uint8_t tcp_bbr::rc_tmr_stopped

Definition at line 783 of file tcp_bbr.h.

Referenced by bbr_process_timers(), bbr_start_hpts_timer(), and bbr_timer_cancel().

◆ rc_tp

struct tcpcb* tcp_bbr::rc_tp

Definition at line 721 of file tcp_bbr.h.

Referenced by __bbr_get_bw(), bbr_ack_received(), bbr_adjust_for_hw_pacing(), bbr_calc_thresh_rack(), bbr_clone_rsm(), bbr_collapsed_window(), bbr_enter_probe_rtt(), bbr_fastack(), bbr_fill_in_logging_data(), bbr_fini(), bbr_get_a_state_target(), bbr_get_pacing_delay(), bbr_get_raw_target_cwnd(), bbr_get_rtt(), bbr_get_target_cwnd(), bbr_init(), bbr_log_ack(), bbr_log_ack_clear(), bbr_log_ack_event(), bbr_log_doseg_done(), bbr_log_enobuf_jmp(), bbr_log_exit_gain(), bbr_log_flowend(), bbr_log_hpts_diag(), bbr_log_output(), bbr_log_pacing_delay_calc(), bbr_log_pkt_epoch(), bbr_log_progress_event(), bbr_log_rtt_sample(), bbr_log_rtt_shrinks(), bbr_log_set_of_state_target(), bbr_log_settings_change(), bbr_log_startup_event(), bbr_log_thresh_choice(), bbr_log_time_epoch(), bbr_log_timer_var(), bbr_log_to_cancel(), bbr_log_to_event(), bbr_log_to_processing(), bbr_log_to_start(), bbr_log_tstmp_validation(), bbr_log_type_bbrrttprop(), bbr_log_type_bbrsnd(), bbr_log_type_bbrupd(), bbr_log_type_bw_reduce(), bbr_log_type_cwndupd(), bbr_log_type_enter_rec(), bbr_log_type_exit_rec(), bbr_log_type_just_return(), bbr_log_type_ltbw(), bbr_log_type_pesist(), bbr_log_type_rsmclear(), bbr_log_type_rwnd_collapse(), bbr_log_type_statechange(), bbr_log_type_tsosize(), bbr_output_wtime(), bbr_process_ack(), bbr_set_pktepoch(), bbr_set_probebw_gains(), bbr_set_state(), bbr_set_state_target(), bbr_state_change(), bbr_state_startup(), bbr_substate_change(), bbr_type_log_hdwr_pacing(), bbr_un_collapse_window(), bbr_update_hardware_pacing_rate(), bbr_update_rsm(), get_min_cwnd(), tcp_bbr_tso_size_check(), and tcp_bbr_xmit_timer_commit().

◆ rc_ts_cant_be_used

uint8_t tcp_bbr::rc_ts_cant_be_used

◆ rc_ts_clock_set

◆ rc_ts_data_set

uint8_t tcp_bbr::rc_ts_data_set

Definition at line 786 of file tcp_bbr.h.

Referenced by tcp_bbr_xmit_timer_commit().

◆ rc_ts_valid

◆ rc_tv

◆ rc_use_google

◆ rc_use_idle_restart

uint8_t tcp_bbr::rc_use_idle_restart

Definition at line 774 of file tcp_bbr.h.

Referenced by bbr_get_sockopt(), bbr_init(), bbr_restart_after_idle(), and bbr_set_sockopt().

◆ rc_use_ts_limit

uint8_t tcp_bbr::rc_use_ts_limit

Definition at line 785 of file tcp_bbr.h.

Referenced by bbr_get_sockopt(), bbr_init(), bbr_nf_measurement(), and bbr_set_sockopt().

◆ rtt_valid

uint16_t tcp_bbr::rtt_valid

◆ skip_gain

◆ ts_can_raise

uint16_t tcp_bbr::ts_can_raise

Definition at line 726 of file tcp_bbr.h.

Referenced by bbr_get_sockopt(), bbr_init(), bbr_nf_measurement(), and bbr_set_sockopt().

◆ use_policer_detection

uint8_t tcp_bbr::use_policer_detection

Definition at line 744 of file tcp_bbr.h.

◆ xxx_bbr_hdw_pace_idx

uint8_t tcp_bbr::xxx_bbr_hdw_pace_idx

Definition at line 745 of file tcp_bbr.h.

◆ xxx_r_ack_count

uint16_t tcp_bbr::xxx_r_ack_count

Definition at line 732 of file tcp_bbr.h.


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