FreeBSD kernel IPv4 code
tcp_rack.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  rack_sendmap
 
struct  deferred_opt_list
 
struct  rack_rtt_sample
 
struct  rack_opts_stats
 
struct  rack_fast_send_blk
 
struct  rack_control
 
struct  tcp_rack
 

Macros

#define RACK_ACKED   0x000001/* The remote endpoint acked this */
 
#define RACK_TO_REXT   0x000002/* A timeout occured on this sendmap entry */
 
#define RACK_DEFERRED   0x000004/* We can't use this for RTT calc - not used */
 
#define RACK_OVERMAX   0x000008/* We have more retran's then we can fit */
 
#define RACK_SACK_PASSED   0x000010/* A sack was done above this block */
 
#define RACK_WAS_SACKPASS   0x000020/* We retransmitted due to SACK pass */
 
#define RACK_HAS_FIN   0x000040/* segment is sent with fin */
 
#define RACK_TLP   0x000080/* segment sent as tail-loss-probe */
 
#define RACK_RWND_COLLAPSED   0x000100/* The peer collapsed the rwnd on the segment */
 
#define RACK_APP_LIMITED   0x000200/* We went app limited after this send */
 
#define RACK_WAS_ACKED   0x000400/* a RTO undid the ack, but it already had a rtt calc done */
 
#define RACK_HAS_SYN   0x000800/* SYN is on this guy */
 
#define RACK_SENT_W_DSACK   0x001000/* Sent with a dsack */
 
#define RACK_SENT_SP   0x002000/* sent in slow path */
 
#define RACK_SENT_FP   0x004000/* sent in fast path */
 
#define RACK_HAD_PUSH   0x008000/* Push was sent on original send */
 
#define RACK_MUST_RXT   0x010000/* We must retransmit this rsm (non-sack/mtu chg)*/
 
#define RACK_NUM_OF_RETRANS   3
 
#define RACK_INITIAL_RTO   1000000 /* 1 second in microseconds */
 
#define RACK_REQ_AVG   3 /* Must be less than 256 */
 
#define MAP_MERGE   0x01
 
#define MAP_SPLIT   0x02
 
#define MAP_NEW   0x03
 
#define MAP_SACK_M1   0x04
 
#define MAP_SACK_M2   0x05
 
#define MAP_SACK_M3   0x06
 
#define MAP_SACK_M4   0x07
 
#define MAP_SACK_M5   0x08
 
#define MAP_FREE   0x09
 
#define MAP_TRIM_HEAD   0x0a
 
#define RACK_LIMIT_TYPE_SPLIT   1
 
#define RACK_RTT_EMPTY   0x00000001 /* Nothing yet stored in RTT's */
 
#define RACK_RTT_VALID   0x00000002 /* We have at least one valid RTT */
 
#define RACK_LOG_TYPE_ACK   0x01
 
#define RACK_LOG_TYPE_OUT   0x02
 
#define RACK_LOG_TYPE_TO   0x03
 
#define RACK_LOG_TYPE_ALLOC   0x04
 
#define RACK_LOG_TYPE_FREE   0x05
 
#define RACK_TO_FRM_TMR   1
 
#define RACK_TO_FRM_TLP   2
 
#define RACK_TO_FRM_RACK   3
 
#define RACK_TO_FRM_KEEP   4
 
#define RACK_TO_FRM_PERSIST   5
 
#define RACK_TO_FRM_DELACK   6
 
#define RACK_RTTS_INIT   0
 
#define RACK_RTTS_NEWRTT   1
 
#define RACK_RTTS_EXITPROBE   2
 
#define RACK_RTTS_ENTERPROBE   3
 
#define RACK_RTTS_REACHTARGET   4
 
#define RACK_RTTS_SEEHBP   5
 
#define RACK_RTTS_NOBACKOFF   6
 
#define RACK_RTTS_SAFETY   7
 
#define RACK_USE_BEG   1
 
#define RACK_USE_END   2
 
#define RACK_USE_END_OR_THACK   3
 
#define TLP_USE_ID   1 /* Internet draft behavior */
 
#define TLP_USE_TWO_ONE   2 /* Use 2.1 behavior */
 
#define TLP_USE_TWO_TWO   3 /* Use 2.2 behavior */
 
#define RACK_MIN_BW   8000 /* 64kbps in Bps */
 
#define RACK_QUALITY_NONE   0 /* No quality stated */
 
#define RACK_QUALITY_HIGH   1 /* A normal measurement of a GP RTT */
 
#define RACK_QUALITY_APPLIMITED   2 /* An app limited case that may be of lower quality */
 
#define RACK_QUALITY_PERSIST   3 /* A measurement where we went into persists */
 
#define RACK_QUALITY_PROBERTT   4 /* A measurement where we went into or exited probe RTT */
 
#define RACK_QUALITY_ALLACKED   5 /* All data is now acknowledged */
 
#define MIN_GP_WIN   6 /* We need at least 6 MSS in a GP measurement */
 
#define RACK_OPTS_SIZE   (sizeof(struct rack_opts_stats)/sizeof(uint64_t))
 
#define RACK_OPTS_ADD(name, amm)   counter_u64_add(rack_opts_arry[(offsetof(struct rack_opts_stats, name)/sizeof(uint64_t))], (amm))
 
#define RACK_OPTS_INC(name)   RACK_OPTS_ADD(name, 1)
 
#define TT_RACK_FR_TMR   0x2000
 
#define RACK_GP_HIST   4 /* How much goodput history do we maintain? */
 
#define RACK_NUM_FSB_DEBUG   16
 
#define RACK_TIMELY_CNT_BOOST   5 /* At 5th increase boost */
 
#define RACK_MINRTT_FILTER_TIM   10 /* Seconds */
 
#define RACK_HYSTART_OFF   0
 
#define RACK_HYSTART_ON   1 /* hystart++ on */
 
#define RACK_HYSTART_ON_W_SC   2 /* hystart++ on +Slam Cwnd */
 
#define RACK_HYSTART_ON_W_SC_C
 

Functions

uint64_t rack_to_usec_ts (struct timeval *tv)
 
uint32_t rack_ts_to_msec (uint64_t ts)
 
 RB_HEAD (rack_rb_tree_head, rack_sendmap)
 
 TAILQ_HEAD (rack_head, rack_sendmap)
 
 TAILQ_HEAD (def_opt_head, deferred_opt_list)
 
struct tcp_rack __aligned (CACHE_LINE_SIZE)
 
 TAILQ_ENTRY (tcp_rack) r_hpts
 

Variables

counter_u64_t rack_opts_arry [RACK_OPTS_SIZE]
 
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
 
uint8_t gp_ready
 
uint8_t defer_options
 
uint8_t fast_rsm_hack
 
uint8_t rc_ack_can_sendout_data
 
uint8_t rc_pacing_cc_set
 
uint8_t rc_rack_tmr_std_based
 
uint8_t rc_rack_use_dsack
 
uint8_t rc_dsack_round_seen
 
uint8_t rc_last_tlp_acked_set
 
uint8_t rc_last_tlp_past_cumack
 
uint8_t rc_last_sent_tlp_seq_valid
 
uint8_t rc_last_sent_tlp_past_cumack
 
uint8_t probe_not_answered
 
uint8_t avail_bytes
 
uint32_t rc_rack_rtt
 
uint16_t r_mbuf_queue
 
uint16_t rtt_limit_mul
 
uint16_t r_limit_scw
 
uint16_t r_must_retran
 
uint16_t r_use_cmp_ack
 
uint16_t r_ent_rec_ns
 
uint16_t r_might_revert
 
uint16_t r_fast_output
 
uint16_t r_fsb_inited
 
uint16_t r_rack_hw_rate_caps
 
uint16_t r_up_only
 
uint16_t r_via_fill_cw
 
uint16_t r_fill_less_agg
 
uint8_t rc_user_set_max_segs
 
uint8_t rc_labc
 
uint16_t forced_ack
 
uint16_t rc_gp_incr
 
uint16_t rc_gp_bwred
 
uint16_t rc_gp_timely_inc_cnt
 
uint16_t rc_gp_timely_dec_cnt
 
uint16_t r_use_labc_for_rec
 
uint16_t rc_highly_buffered
 
uint16_t rc_dragged_bottom
 
uint16_t rc_dack_mode
 
uint16_t rc_dack_toggle
 
uint16_t rc_gp_filled
 
uint16_t rc_is_spare
 
uint8_t r_state
 
uint8_t rc_tmr_stopped
 
uint8_t t_timers_stopped
 
uint8_t rc_enobuf
 
uint8_t rc_on_min_to
 
uint8_t r_timer_override
 
uint8_t r_is_v6
 
uint8_t rc_in_persist
 
uint8_t rc_tlp_in_progress
 
uint8_t rc_always_pace
 
uint8_t rc_pace_to_cwnd
 
uint8_t rc_pace_fill_if_rttin_range
 
uint8_t rc_srtt_measure_made
 
uint8_t app_limited_needs_set
 
uint8_t use_fixed_rate
 
uint8_t rc_has_collapsed
 
uint8_t r_rep_attack
 
uint8_t r_rep_reverse
 
uint8_t rack_hdrw_pacing
 
uint8_t rack_hdw_pace_ena
 
uint8_t rack_attempt_hdwr_pace
 
uint8_t rack_tlp_threshold_use
 
uint8_t rack_rec_nonrxt_use_cr
 
uint8_t rack_enable_scwnd
 
uint8_t rack_attempted_scwnd
 
uint8_t rack_no_prr
 
uint8_t rack_scwnd_is_idle
 
uint8_t rc_allow_data_af_clo
 
uint8_t delayed_ack
 
uint8_t set_pacing_done_a_iw
 
uint8_t use_rack_rr
 
uint8_t alloc_limit_reported
 
uint8_t sack_attack_disable
 
uint8_t do_detection
 
uint8_t rc_force_max_seg
 
uint8_t r_early
 
uint8_t r_late
 
uint8_t r_wanted_output
 
uint8_t r_rr_config
 
uint8_t rc_avail_bit
 
uint16_t rc_init_win
 
uint16_t rc_gp_rtt_set
 
uint16_t rc_gp_dyn_mul
 
uint16_t rc_gp_saw_rec
 
uint16_t rc_gp_saw_ca
 
uint16_t rc_gp_saw_ss
 
uint16_t rc_gp_no_rec_chg
 
uint16_t in_probe_rtt
 
uint16_t measure_saw_probe_rtt
 
struct rack_control r_ctl
 

Macro Definition Documentation

◆ MAP_FREE

#define MAP_FREE   0x09

Definition at line 130 of file tcp_rack.h.

◆ MAP_MERGE

#define MAP_MERGE   0x01

Definition at line 122 of file tcp_rack.h.

◆ MAP_NEW

#define MAP_NEW   0x03

Definition at line 124 of file tcp_rack.h.

◆ MAP_SACK_M1

#define MAP_SACK_M1   0x04

Definition at line 125 of file tcp_rack.h.

◆ MAP_SACK_M2

#define MAP_SACK_M2   0x05

Definition at line 126 of file tcp_rack.h.

◆ MAP_SACK_M3

#define MAP_SACK_M3   0x06

Definition at line 127 of file tcp_rack.h.

◆ MAP_SACK_M4

#define MAP_SACK_M4   0x07

Definition at line 128 of file tcp_rack.h.

◆ MAP_SACK_M5

#define MAP_SACK_M5   0x08

Definition at line 129 of file tcp_rack.h.

◆ MAP_SPLIT

#define MAP_SPLIT   0x02

Definition at line 123 of file tcp_rack.h.

◆ MAP_TRIM_HEAD

#define MAP_TRIM_HEAD   0x0a

Definition at line 131 of file tcp_rack.h.

◆ MIN_GP_WIN

#define MIN_GP_WIN   6 /* We need at least 6 MSS in a GP measurement */

Definition at line 265 of file tcp_rack.h.

◆ RACK_ACKED

#define RACK_ACKED   0x000001/* The remote endpoint acked this */

Definition at line 31 of file tcp_rack.h.

◆ RACK_APP_LIMITED

#define RACK_APP_LIMITED   0x000200/* We went app limited after this send */

Definition at line 40 of file tcp_rack.h.

◆ RACK_DEFERRED

#define RACK_DEFERRED   0x000004/* We can't use this for RTT calc - not used */

Definition at line 33 of file tcp_rack.h.

◆ RACK_GP_HIST

#define RACK_GP_HIST   4 /* How much goodput history do we maintain? */

Definition at line 312 of file tcp_rack.h.

◆ RACK_HAD_PUSH

#define RACK_HAD_PUSH   0x008000/* Push was sent on original send */

Definition at line 46 of file tcp_rack.h.

◆ RACK_HAS_FIN

#define RACK_HAS_FIN   0x000040/* segment is sent with fin */

Definition at line 37 of file tcp_rack.h.

◆ RACK_HAS_SYN

#define RACK_HAS_SYN   0x000800/* SYN is on this guy */

Definition at line 42 of file tcp_rack.h.

◆ RACK_HYSTART_OFF

#define RACK_HYSTART_OFF   0

Definition at line 499 of file tcp_rack.h.

◆ RACK_HYSTART_ON

#define RACK_HYSTART_ON   1 /* hystart++ on */

Definition at line 500 of file tcp_rack.h.

◆ RACK_HYSTART_ON_W_SC

#define RACK_HYSTART_ON_W_SC   2 /* hystart++ on +Slam Cwnd */

Definition at line 501 of file tcp_rack.h.

◆ RACK_HYSTART_ON_W_SC_C

#define RACK_HYSTART_ON_W_SC_C
Value:
3 /* hystart++ on,
* Conservative ssthresh and
* +Slam cwnd
*/

Definition at line 502 of file tcp_rack.h.

◆ RACK_INITIAL_RTO

#define RACK_INITIAL_RTO   1000000 /* 1 second in microseconds */

Definition at line 50 of file tcp_rack.h.

◆ RACK_LIMIT_TYPE_SPLIT

#define RACK_LIMIT_TYPE_SPLIT   1

Definition at line 133 of file tcp_rack.h.

◆ RACK_LOG_TYPE_ACK

#define RACK_LOG_TYPE_ACK   0x01

Definition at line 155 of file tcp_rack.h.

◆ RACK_LOG_TYPE_ALLOC

#define RACK_LOG_TYPE_ALLOC   0x04

Definition at line 158 of file tcp_rack.h.

◆ RACK_LOG_TYPE_FREE

#define RACK_LOG_TYPE_FREE   0x05

Definition at line 159 of file tcp_rack.h.

◆ RACK_LOG_TYPE_OUT

#define RACK_LOG_TYPE_OUT   0x02

Definition at line 156 of file tcp_rack.h.

◆ RACK_LOG_TYPE_TO

#define RACK_LOG_TYPE_TO   0x03

Definition at line 157 of file tcp_rack.h.

◆ RACK_MIN_BW

#define RACK_MIN_BW   8000 /* 64kbps in Bps */

Definition at line 254 of file tcp_rack.h.

◆ RACK_MINRTT_FILTER_TIM

#define RACK_MINRTT_FILTER_TIM   10 /* Seconds */

Definition at line 497 of file tcp_rack.h.

◆ RACK_MUST_RXT

#define RACK_MUST_RXT   0x010000/* We must retransmit this rsm (non-sack/mtu chg)*/

Definition at line 47 of file tcp_rack.h.

◆ RACK_NUM_FSB_DEBUG

#define RACK_NUM_FSB_DEBUG   16

Definition at line 314 of file tcp_rack.h.

◆ RACK_NUM_OF_RETRANS

#define RACK_NUM_OF_RETRANS   3

Definition at line 48 of file tcp_rack.h.

◆ RACK_OPTS_ADD

#define RACK_OPTS_ADD (   name,
  amm 
)    counter_u64_add(rack_opts_arry[(offsetof(struct rack_opts_stats, name)/sizeof(uint64_t))], (amm))

Definition at line 269 of file tcp_rack.h.

◆ RACK_OPTS_INC

#define RACK_OPTS_INC (   name)    RACK_OPTS_ADD(name, 1)

Definition at line 270 of file tcp_rack.h.

◆ RACK_OPTS_SIZE

#define RACK_OPTS_SIZE   (sizeof(struct rack_opts_stats)/sizeof(uint64_t))

Definition at line 267 of file tcp_rack.h.

◆ RACK_OVERMAX

#define RACK_OVERMAX   0x000008/* We have more retran's then we can fit */

Definition at line 34 of file tcp_rack.h.

◆ RACK_QUALITY_ALLACKED

#define RACK_QUALITY_ALLACKED   5 /* All data is now acknowledged */

Definition at line 262 of file tcp_rack.h.

◆ RACK_QUALITY_APPLIMITED

#define RACK_QUALITY_APPLIMITED   2 /* An app limited case that may be of lower quality */

Definition at line 259 of file tcp_rack.h.

◆ RACK_QUALITY_HIGH

#define RACK_QUALITY_HIGH   1 /* A normal measurement of a GP RTT */

Definition at line 258 of file tcp_rack.h.

◆ RACK_QUALITY_NONE

#define RACK_QUALITY_NONE   0 /* No quality stated */

Definition at line 257 of file tcp_rack.h.

◆ RACK_QUALITY_PERSIST

#define RACK_QUALITY_PERSIST   3 /* A measurement where we went into persists */

Definition at line 260 of file tcp_rack.h.

◆ RACK_QUALITY_PROBERTT

#define RACK_QUALITY_PROBERTT   4 /* A measurement where we went into or exited probe RTT */

Definition at line 261 of file tcp_rack.h.

◆ RACK_REQ_AVG

#define RACK_REQ_AVG   3 /* Must be less than 256 */

Definition at line 52 of file tcp_rack.h.

◆ RACK_RTT_EMPTY

#define RACK_RTT_EMPTY   0x00000001 /* Nothing yet stored in RTT's */

Definition at line 142 of file tcp_rack.h.

◆ RACK_RTT_VALID

#define RACK_RTT_VALID   0x00000002 /* We have at least one valid RTT */

Definition at line 143 of file tcp_rack.h.

◆ RACK_RTTS_ENTERPROBE

#define RACK_RTTS_ENTERPROBE   3

Definition at line 241 of file tcp_rack.h.

◆ RACK_RTTS_EXITPROBE

#define RACK_RTTS_EXITPROBE   2

Definition at line 240 of file tcp_rack.h.

◆ RACK_RTTS_INIT

#define RACK_RTTS_INIT   0

Definition at line 238 of file tcp_rack.h.

◆ RACK_RTTS_NEWRTT

#define RACK_RTTS_NEWRTT   1

Definition at line 239 of file tcp_rack.h.

◆ RACK_RTTS_NOBACKOFF

#define RACK_RTTS_NOBACKOFF   6

Definition at line 244 of file tcp_rack.h.

◆ RACK_RTTS_REACHTARGET

#define RACK_RTTS_REACHTARGET   4

Definition at line 242 of file tcp_rack.h.

◆ RACK_RTTS_SAFETY

#define RACK_RTTS_SAFETY   7

Definition at line 245 of file tcp_rack.h.

◆ RACK_RTTS_SEEHBP

#define RACK_RTTS_SEEHBP   5

Definition at line 243 of file tcp_rack.h.

◆ RACK_RWND_COLLAPSED

#define RACK_RWND_COLLAPSED   0x000100/* The peer collapsed the rwnd on the segment */

Definition at line 39 of file tcp_rack.h.

◆ RACK_SACK_PASSED

#define RACK_SACK_PASSED   0x000010/* A sack was done above this block */

Definition at line 35 of file tcp_rack.h.

◆ RACK_SENT_FP

#define RACK_SENT_FP   0x004000/* sent in fast path */

Definition at line 45 of file tcp_rack.h.

◆ RACK_SENT_SP

#define RACK_SENT_SP   0x002000/* sent in slow path */

Definition at line 44 of file tcp_rack.h.

◆ RACK_SENT_W_DSACK

#define RACK_SENT_W_DSACK   0x001000/* Sent with a dsack */

Definition at line 43 of file tcp_rack.h.

◆ RACK_TIMELY_CNT_BOOST

#define RACK_TIMELY_CNT_BOOST   5 /* At 5th increase boost */

Definition at line 496 of file tcp_rack.h.

◆ RACK_TLP

#define RACK_TLP   0x000080/* segment sent as tail-loss-probe */

Definition at line 38 of file tcp_rack.h.

◆ RACK_TO_FRM_DELACK

#define RACK_TO_FRM_DELACK   6

Definition at line 170 of file tcp_rack.h.

◆ RACK_TO_FRM_KEEP

#define RACK_TO_FRM_KEEP   4

Definition at line 168 of file tcp_rack.h.

◆ RACK_TO_FRM_PERSIST

#define RACK_TO_FRM_PERSIST   5

Definition at line 169 of file tcp_rack.h.

◆ RACK_TO_FRM_RACK

#define RACK_TO_FRM_RACK   3

Definition at line 167 of file tcp_rack.h.

◆ RACK_TO_FRM_TLP

#define RACK_TO_FRM_TLP   2

Definition at line 166 of file tcp_rack.h.

◆ RACK_TO_FRM_TMR

#define RACK_TO_FRM_TMR   1

Definition at line 165 of file tcp_rack.h.

◆ RACK_TO_REXT

#define RACK_TO_REXT   0x000002/* A timeout occured on this sendmap entry */

Definition at line 32 of file tcp_rack.h.

◆ RACK_USE_BEG

#define RACK_USE_BEG   1

Definition at line 247 of file tcp_rack.h.

◆ RACK_USE_END

#define RACK_USE_END   2

Definition at line 248 of file tcp_rack.h.

◆ RACK_USE_END_OR_THACK

#define RACK_USE_END_OR_THACK   3

Definition at line 249 of file tcp_rack.h.

◆ RACK_WAS_ACKED

#define RACK_WAS_ACKED   0x000400/* a RTO undid the ack, but it already had a rtt calc done */

Definition at line 41 of file tcp_rack.h.

◆ RACK_WAS_SACKPASS

#define RACK_WAS_SACKPASS   0x000020/* We retransmitted due to SACK pass */

Definition at line 36 of file tcp_rack.h.

◆ TLP_USE_ID

#define TLP_USE_ID   1 /* Internet draft behavior */

Definition at line 251 of file tcp_rack.h.

◆ TLP_USE_TWO_ONE

#define TLP_USE_TWO_ONE   2 /* Use 2.1 behavior */

Definition at line 252 of file tcp_rack.h.

◆ TLP_USE_TWO_TWO

#define TLP_USE_TWO_TWO   3 /* Use 2.2 behavior */

Definition at line 253 of file tcp_rack.h.

◆ TT_RACK_FR_TMR

#define TT_RACK_FR_TMR   0x2000

Definition at line 304 of file tcp_rack.h.

Function Documentation

◆ __aligned()

struct tcp_rack __aligned ( CACHE_LINE_SIZE  )

◆ rack_to_usec_ts()

uint64_t rack_to_usec_ts ( struct timeval *  tv)
inline

◆ rack_ts_to_msec()

uint32_t rack_ts_to_msec ( uint64_t  ts)
inline

Definition at line 111 of file tcp_rack.h.

Referenced by rack_process_to_cumack(), and rack_update_rtt().

Here is the caller graph for this function:

◆ RB_HEAD()

RB_HEAD ( rack_rb_tree_head  ,
rack_sendmap   
)

◆ TAILQ_ENTRY()

__aligned::TAILQ_ENTRY ( tcp_rack  )

◆ TAILQ_HEAD() [1/2]

TAILQ_HEAD ( def_opt_head  ,
deferred_opt_list   
)

◆ TAILQ_HEAD() [2/2]

TAILQ_HEAD ( rack_head  ,
rack_sendmap   
)

Variable Documentation

◆ alloc_limit_reported

uint8_t alloc_limit_reported

Definition at line 102 of file tcp_rack.h.

◆ app_limited_needs_set

uint8_t app_limited_needs_set

Definition at line 84 of file tcp_rack.h.

◆ avail_bytes

uint8_t avail_bytes

Definition at line 41 of file tcp_rack.h.

◆ client_bufferlvl

uint8_t client_bufferlvl

Definition at line 9 of file tcp_rack.h.

◆ defer_options

uint8_t defer_options

Definition at line 12 of file tcp_rack.h.

◆ delayed_ack

uint8_t delayed_ack

Definition at line 99 of file tcp_rack.h.

Referenced by bbr_start_hpts_timer(), and rack_start_hpts_timer().

◆ do_detection

uint8_t do_detection

Definition at line 104 of file tcp_rack.h.

◆ fast_rsm_hack

uint8_t fast_rsm_hack

Definition at line 13 of file tcp_rack.h.

◆ forced_ack

uint16_t forced_ack

Definition at line 59 of file tcp_rack.h.

◆ gp_ready

uint8_t gp_ready

Definition at line 11 of file tcp_rack.h.

◆ in_probe_rtt

uint16_t in_probe_rtt

Definition at line 118 of file tcp_rack.h.

◆ measure_saw_probe_rtt

uint16_t measure_saw_probe_rtt

Definition at line 119 of file tcp_rack.h.

◆ no_prr_addback

uint8_t no_prr_addback

Definition at line 10 of file tcp_rack.h.

◆ probe_not_answered

uint8_t probe_not_answered

Definition at line 40 of file tcp_rack.h.

◆ r_ctl

struct rack_control r_ctl

Definition at line 121 of file tcp_rack.h.

◆ r_early

uint8_t r_early

Definition at line 106 of file tcp_rack.h.

◆ r_ent_rec_ns

uint16_t r_ent_rec_ns

Definition at line 48 of file tcp_rack.h.

◆ r_fast_output

uint16_t r_fast_output

Definition at line 50 of file tcp_rack.h.

◆ r_fill_less_agg

uint16_t r_fill_less_agg

Definition at line 55 of file tcp_rack.h.

◆ r_fsb_inited

uint16_t r_fsb_inited

Definition at line 51 of file tcp_rack.h.

◆ r_is_v6

uint8_t r_is_v6

Definition at line 77 of file tcp_rack.h.

◆ r_late

uint8_t r_late

Definition at line 107 of file tcp_rack.h.

◆ r_limit_scw

uint16_t r_limit_scw

Definition at line 45 of file tcp_rack.h.

◆ r_mbuf_queue

uint16_t r_mbuf_queue

Definition at line 43 of file tcp_rack.h.

◆ r_might_revert

uint16_t r_might_revert

Definition at line 49 of file tcp_rack.h.

◆ r_must_retran

uint16_t r_must_retran

Definition at line 46 of file tcp_rack.h.

◆ r_rack_hw_rate_caps

uint16_t r_rack_hw_rate_caps

Definition at line 52 of file tcp_rack.h.

◆ r_rep_attack

uint8_t r_rep_attack

Definition at line 87 of file tcp_rack.h.

◆ r_rep_reverse

uint8_t r_rep_reverse

Definition at line 88 of file tcp_rack.h.

◆ r_rr_config

uint8_t r_rr_config

Definition at line 109 of file tcp_rack.h.

◆ r_state

uint8_t r_state

Definition at line 71 of file tcp_rack.h.

◆ r_substate

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 mbuf *  ,
struct tcphdr *  ,
struct socket *  ,
struct tcpcb ,
struct tcpopt ,
int32_t  ,
int32_t  ,
uint32_t  ,
int  ,
int  ,
uint8_t   
)

Definition at line 2 of file tcp_rack.h.

◆ r_timer_override

uint8_t r_timer_override

Definition at line 76 of file tcp_rack.h.

◆ r_up_only

uint16_t r_up_only

Definition at line 53 of file tcp_rack.h.

◆ r_use_cmp_ack

uint16_t r_use_cmp_ack

Definition at line 47 of file tcp_rack.h.

◆ r_use_labc_for_rec

uint16_t r_use_labc_for_rec

Definition at line 64 of file tcp_rack.h.

◆ r_via_fill_cw

uint16_t r_via_fill_cw

Definition at line 54 of file tcp_rack.h.

◆ r_wanted_output

uint8_t r_wanted_output

Definition at line 108 of file tcp_rack.h.

◆ rack_attempt_hdwr_pace

uint8_t rack_attempt_hdwr_pace

Definition at line 91 of file tcp_rack.h.

◆ rack_attempted_scwnd

uint8_t rack_attempted_scwnd

Definition at line 95 of file tcp_rack.h.

◆ rack_enable_scwnd

uint8_t rack_enable_scwnd

Definition at line 94 of file tcp_rack.h.

◆ rack_hdrw_pacing

uint8_t rack_hdrw_pacing

Definition at line 89 of file tcp_rack.h.

◆ rack_hdw_pace_ena

uint8_t rack_hdw_pace_ena

Definition at line 90 of file tcp_rack.h.

◆ rack_no_prr

uint8_t rack_no_prr

Definition at line 96 of file tcp_rack.h.

◆ rack_opts_arry

counter_u64_t rack_opts_arry[RACK_OPTS_SIZE]
extern

Definition at line 388 of file rack.c.

Referenced by rack_counter_destroy(), and rack_init_sysctls().

◆ rack_rec_nonrxt_use_cr

uint8_t rack_rec_nonrxt_use_cr

Definition at line 93 of file tcp_rack.h.

◆ rack_scwnd_is_idle

uint8_t rack_scwnd_is_idle

Definition at line 97 of file tcp_rack.h.

◆ rack_tlp_threshold_use

uint8_t rack_tlp_threshold_use

Definition at line 92 of file tcp_rack.h.

◆ rc_ack_can_sendout_data

uint8_t rc_ack_can_sendout_data

Definition at line 14 of file tcp_rack.h.

◆ rc_allow_data_af_clo

uint8_t rc_allow_data_af_clo

Definition at line 98 of file tcp_rack.h.

◆ rc_always_pace

uint8_t rc_always_pace

Definition at line 80 of file tcp_rack.h.

◆ rc_avail_bit

uint8_t rc_avail_bit

Definition at line 110 of file tcp_rack.h.

◆ rc_dack_mode

uint16_t rc_dack_mode

Definition at line 67 of file tcp_rack.h.

◆ rc_dack_toggle

uint16_t rc_dack_toggle

Definition at line 68 of file tcp_rack.h.

◆ rc_dragged_bottom

uint16_t rc_dragged_bottom

Definition at line 66 of file tcp_rack.h.

◆ rc_dsack_round_seen

uint8_t rc_dsack_round_seen

Definition at line 35 of file tcp_rack.h.

◆ rc_enobuf

uint8_t rc_enobuf

Definition at line 74 of file tcp_rack.h.

◆ rc_force_max_seg

uint8_t rc_force_max_seg

Definition at line 105 of file tcp_rack.h.

◆ rc_free_cnt

uint8_t rc_free_cnt

Definition at line 7 of file tcp_rack.h.

◆ rc_gp_bwred

uint16_t rc_gp_bwred

Definition at line 61 of file tcp_rack.h.

◆ rc_gp_dyn_mul

uint16_t rc_gp_dyn_mul

Definition at line 113 of file tcp_rack.h.

◆ rc_gp_filled

uint16_t rc_gp_filled

Definition at line 69 of file tcp_rack.h.

◆ rc_gp_incr

uint16_t rc_gp_incr

Definition at line 60 of file tcp_rack.h.

◆ rc_gp_no_rec_chg

uint16_t rc_gp_no_rec_chg

Definition at line 117 of file tcp_rack.h.

◆ rc_gp_rtt_set

uint16_t rc_gp_rtt_set

Definition at line 112 of file tcp_rack.h.

◆ rc_gp_saw_ca

uint16_t rc_gp_saw_ca

Definition at line 115 of file tcp_rack.h.

◆ rc_gp_saw_rec

uint16_t rc_gp_saw_rec

Definition at line 114 of file tcp_rack.h.

◆ rc_gp_saw_ss

uint16_t rc_gp_saw_ss

Definition at line 116 of file tcp_rack.h.

◆ rc_gp_timely_dec_cnt

uint16_t rc_gp_timely_dec_cnt

Definition at line 63 of file tcp_rack.h.

◆ rc_gp_timely_inc_cnt

uint16_t rc_gp_timely_inc_cnt

Definition at line 62 of file tcp_rack.h.

◆ rc_has_collapsed

uint8_t rc_has_collapsed

Definition at line 86 of file tcp_rack.h.

◆ rc_highly_buffered

uint16_t rc_highly_buffered

Definition at line 65 of file tcp_rack.h.

◆ rc_in_persist

uint8_t rc_in_persist

Definition at line 78 of file tcp_rack.h.

◆ rc_init_win

uint16_t rc_init_win

Definition at line 111 of file tcp_rack.h.

◆ rc_inp

struct inpcb* rc_inp

Definition at line 6 of file tcp_rack.h.

◆ rc_is_spare

uint16_t rc_is_spare

Definition at line 70 of file tcp_rack.h.

◆ rc_labc

uint8_t rc_labc

Definition at line 58 of file tcp_rack.h.

◆ rc_last_sent_tlp_past_cumack

uint8_t rc_last_sent_tlp_past_cumack

Definition at line 39 of file tcp_rack.h.

◆ rc_last_sent_tlp_seq_valid

uint8_t rc_last_sent_tlp_seq_valid

Definition at line 38 of file tcp_rack.h.

◆ rc_last_tlp_acked_set

uint8_t rc_last_tlp_acked_set

Definition at line 36 of file tcp_rack.h.

◆ rc_last_tlp_past_cumack

uint8_t rc_last_tlp_past_cumack

Definition at line 37 of file tcp_rack.h.

◆ rc_on_min_to

uint8_t rc_on_min_to

Definition at line 75 of file tcp_rack.h.

◆ rc_pace_fill_if_rttin_range

uint8_t rc_pace_fill_if_rttin_range

Definition at line 82 of file tcp_rack.h.

◆ rc_pace_to_cwnd

uint8_t rc_pace_to_cwnd

Definition at line 81 of file tcp_rack.h.

◆ rc_pacing_cc_set

uint8_t rc_pacing_cc_set

Definition at line 21 of file tcp_rack.h.

◆ rc_rack_rtt

uint32_t rc_rack_rtt

Definition at line 42 of file tcp_rack.h.

◆ rc_rack_tmr_std_based

uint8_t rc_rack_tmr_std_based

Definition at line 33 of file tcp_rack.h.

◆ rc_rack_use_dsack

uint8_t rc_rack_use_dsack

Definition at line 34 of file tcp_rack.h.

◆ rc_srtt_measure_made

uint8_t rc_srtt_measure_made

Definition at line 83 of file tcp_rack.h.

◆ rc_tlp_in_progress

uint8_t rc_tlp_in_progress

Definition at line 79 of file tcp_rack.h.

◆ rc_tmr_stopped

uint8_t rc_tmr_stopped

Definition at line 72 of file tcp_rack.h.

◆ rc_tp

struct tcpcb* rc_tp

Definition at line 5 of file tcp_rack.h.

◆ rc_user_set_max_segs

uint8_t rc_user_set_max_segs

Definition at line 57 of file tcp_rack.h.

◆ rtt_limit_mul

uint16_t rtt_limit_mul

Definition at line 44 of file tcp_rack.h.

◆ sack_attack_disable

uint8_t sack_attack_disable

Definition at line 103 of file tcp_rack.h.

◆ set_pacing_done_a_iw

uint8_t set_pacing_done_a_iw

Definition at line 100 of file tcp_rack.h.

◆ t_timers_stopped

uint8_t t_timers_stopped

Definition at line 73 of file tcp_rack.h.

◆ use_fixed_rate

uint8_t use_fixed_rate

Definition at line 85 of file tcp_rack.h.

◆ use_rack_rr

uint8_t use_rack_rr

Definition at line 101 of file tcp_rack.h.