Lines Matching +full:loss +full:- +full:of +full:- +full:lock
1 /*-
2 * Copyright (c) 2016-2020 Netflix, Inc.
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
10 * notice, this list of conditions and the following disclaimer in the
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 #define BBR_INITIAL_RTO 1000000 /* 1 second in micro-seconds */
39 #define BBR_TLP 0x0080 /* segment sent as tail-loss-probe */
43 * totaled into bbr->rc_ctl.rc_lost
54 * With the addition of both measurement algorithms
55 * I had to move over the size of a
62 TAILQ_ENTRY(bbr_sendmap) r_tnext; /* Time of tmit based next */
63 uint32_t r_start; /* Sequence number of the segment */
69 uint32_t r_del_time; /* The time of the last delivery update */
70 uint8_t r_rtr_cnt:4, /* Retran count, index this -1 to get time
78 r_is_smallmap:1,/* Was logged as a small-map send-map item */
85 uint32_t r_del_ack_ts; /* At send what timestamp of peer was (if r_ts_valid set) */
93 uint32_t r_first_sent_time; /* Time of first pkt in flight sent */
94 uint32_t r_pacing_delay; /* pacing delay of this send */
95 uint32_t r_flight_at_send; /* flight at the time of the send */
114 #define BBR_RED_BW_RATECAL 1 /* We are calculating the loss rate */
118 * exit from probe-rtt */
126 * get out of jail early */
230 uint64_t sb_acc; /* For out/ack or t-o */
311 * with the time it was sent. During non-recovery sending we
312 * add to our map and note the time down of any send expanding
321 * To calculate pipe we simply take (snd_max - snd_una) + rc_holes_rxt
322 * This gets us the effect of RFC6675 pipe, counting twice for
331 #define BBR_NUM_RTTS_FOR_DEL_LIMIT 8 /* How many pkt-rtts do we keep
333 #define BBR_NUM_RTTS_FOR_GOOG_DEL_LIMIT 10 /* How many pkt-rtts do we keep
350 * b) Locked by the hpts-mutex
525 struct bbr_head rc_map; /* List of all segments Lock(a) */
526 struct bbr_head rc_tmap; /* List in transmit order Lock(a) */
529 uint32_t rc_last_delay_val; /* How much we expect to delay Lock(a) */
530 uint32_t rc_bbr_hptsi_gain:16, /* Current hptsi gain Lock(a) */
533 uint32_t rc_delivered; /* BRR delivered amount Lock(a) */
545 struct bbr_head rc_free; /* List of Free map entries Lock(a) */
551 uint16_t rc_free_cnt; /* Number of free entries on the rc_free list
552 * Lock(a) */
558 * probe-rtt qualified */
559 uint32_t rc_pace_max_segs:17, /* How much in any single TSO we send Lock(a) */
562 uint32_t rc_rtt_shrinks; /* Time of last rtt shrinkage Lock(a) */
564 uint32_t rc_timer_exp; /* If a timer ticks of expiry */
565 uint32_t rc_rcv_epoch_start; /* Start time of the Epoch Lock(a) */
572 * pkt-epoch */
573 uint32_t r_measurement_count; /* count of measurement applied lock(a) */
575 uint32_t rc_last_tlp_seq; /* Last tlp sequence Lock(a) */
576 uint16_t rc_reorder_shift; /* Socket option value Lock(a) */
577 uint16_t rc_pkt_delay; /* Socket option value Lock(a) */
580 * Lock(a) */
582 * retransmit at Lock(a) */
584 uint32_t rc_sacked; /* Tot sacked on scoreboard Lock(a) */
585 uint32_t rc_holes_rxt; /* Tot retraned from scoreboard Lock(a) */
587 uint32_t rc_reorder_ts; /* Last time we saw reordering Lock(a) */
589 /*- ---
614 uint32_t rc_lt_epoch_use; /* When we started lt-bw use Lock(a) */
616 uint32_t rc_recovery_start; /* Time we start recovery Lock(a) */
617 uint32_t rc_lt_del; /* Delivered at lt bw sampling start Lock(a) */
620 * Lock(a) */
626 * Lock(a) */
629 uint32_t rc_rcvtime; /* When we last received data Lock(a) */
637 * Lock(a) */
641 uint32_t rc_lt_epoch; /* LT epoch start of bw_sampling */
648 * probertt Lock(a) */
649 uint32_t rc_lt_time; /* Time of lt sampling start Lock(a) */
654 uint64_t rc_lt_bw; /* LT bw calculated Lock(a) */
656 * saw to check the 20% gain Lock(a) */
658 uint32_t rc_bbr_cwnd_gain; /* Current cwnd gain Lock(a) */
659 uint32_t rc_pkt_epoch_loss_rate; /* pkt-epoch loss rate */
661 uint32_t rc_saved_cwnd; /* Saved cwnd during Probe-rtt drain Lock(a) */
664 uint32_t rc_lost; /* Number of bytes lost Lock(a) */
667 uint32_t rc_lt_lost; /* Number of lt bytes lost at sampling start
668 * Lock(a) */
671 uint32_t rc_min_to; /* Socket option value Lock(a) */
672 uint32_t rc_initial_hptsi_bw; /* Our initial startup bw Lock(a) */
687 uint32_t gain_epoch; /* Epoch we should be out of gain */
690 uint32_t rc_reorder_fade; /* Socket option value Lock(a) */
704 uint32_t bbr_ts_check_our_cts; /* When we filled it the cts of the send */
707 uint32_t bbr_hdwr_cnt_noset_snt; /* count of hw pacing sends during delay */
712 uint32_t recovery_lr; /* The sum of the loss rate from the pe's during recovery */
715 uint32_t rc_pe_of_prtt; /* PE we went into probe-rtt */
718 uint16_t rc_tlp_seg_send_cnt; /* Number of times we have TLP sent
719 * rc_last_tlp_seq Lock(a) */
723 uint16_t rc_num_small_maps_alloced; /* Number of sack blocks
738 int32_t, int32_t, uint32_t, int32_t, int32_t, uint8_t); /* Lock(a) */
739 struct tcpcb *rc_tp; /* The tcpcb Lock(a) */
740 struct inpcb *rc_inp; /* The inpcb Lock(a) */
750 uint16_t xxx_r_ack_count; /* During recovery count of ack's received
754 uint8_t bbr_timer_src:4, /* Used for debugging Lock(a) */
781 uint8_t r_state:4, /* Current bbr state Lock(a) */
786 uint8_t r_timer_override:1, /* pacer override Lock(a) 0/1 */
798 uint8_t rc_tlp_threshold; /* Socket option value Lock(a) */